文章归档在这里可以查看所有文章的时间轴归档,按年份分组展示。📊 Statistics851Total Posts11Year Span77Avg per Year20264 Posts01-23Which AI services are best, and which ones am I still using?448 Words01-22Using AI to build a full-stack project94 Words01-15Automating WeChat Mini Program Deployment with miniprogram-ci474 Words01-14Claude Code with Exa MCP528 Words2025144 Posts12-31Opening an Interactive Brokers (IBKR) Account618 Words12-18Using Web Scraper to Crawl Website Data272 Words12-16Antigravity with Figma MCP Server196 Words12-14Creating Claude Skills with Claude Code288 Words12-07Custom Slash Commands in Codex87 Words12-04Using a Hong Kong CSL SIM Card342 Words12-03Enabling Gemini in Chrome132 Words11-29Subscribing to Claude Pro in a Low-Price Region (Nigeria)400 Words11-27Using the Gemini CLI109 Words11-26Subscribing to X Premium in a Low-Price Region379 Words11-23CodeTracker: A WakaTime Client for WeChat Mini Programs257 Words11-21Customizing Mouse Buttons433 Words11-16My Subscribed Software Services List385 Words11-16Implementing Email Notifications for Waline Comments333 Words11-11Custom Slash Commands in Claude Code282 Words11-09Guide to Using Claude Code with Codex388 Words11-09Integrating Codex with Figma MCP Server297 Words11-01Using Claude Code with the Figma MCP Server246 Words10-21Opening a uSMART Account: The Last Brokerage Still Supporting Mainland Identity478 Words10-20Subscribing to YouTube Premium via Turkey (2025 Guide)427 Words10-10Generating gRPC Web and gRPC SDK from Protocol Buffers181 Words09-29Using Chrome DevTools MCP in the Claude Desktop App416 Words09-25Investigation into Web Clipboard Copying Failures238 Words09-24Extending Caddy Functionality by Installing Modules282 Words09-24Using Hugo Blox262 Words09-19How to Delete All Photos from Google Photos311 Words09-14Codex Usage Guide332 Words09-07My Data & Cloud Sync Solution248 Words08-31Google Nano Banana AI Prompt Recommendations174 Words08-28Claude Code: Install ccstatusline to Monitor Usage in Real Time56 Words08-22Claude Code Is Expensive? Try Connecting to DeepSeek440 Words08-20Alfred Theme Recommendations31 Words08-18Talking About Spotify and Domestic Music Services416 Words08-12Using Corepack236 Words08-05Ethers.js Research478 Words08-04Claude Pro US Subscription, Supporting Claude Code Usage297 Words08-04Mini-Program Avatar and Nickname Retrieval266 Words08-02Methods for Screen Mirroring Mobile Devices to TV and Personal Usage Experience487 Words08-01Claude Code Usage Guide833 Words07-24Understanding Tailwind309 Words07-22Keyof for Nested Objects113 Words07-14Getting the Redmi Note 13 5G: A Sub-$1000 Phone with Many Issues, But What More Can You Ask For?654 Words07-10Anker Power Bank Recall - I Finally Chose Self-Disposal and Selected Replacement698 Words07-04Everyday Magic: Three MagSafe Benefits That Change Your Routine367 Words06-30Which AI Service is Better? What AI Tools Do I Use Daily?619 Words06-29Japan Free Travel Guide522 Words06-27NotebookLM Audio Podcast Experience Review: Current Limitations158 Words06-26Anker Power Bank Recall: Both of Mine Are Affected824 Words06-25Japan Trip: How I Set Up My iPhone - Useful Apps & Features559 Words06-18How I Organize My iPhone Home Screen267 Words06-18Google Search AI Overview Now Supports Chinese322 Words06-15As an Apple User, the 6 Features I Want Most582 Words06-14One-Time Code Autofill Feature Enhanced in iOS 26 and macOS Tahoe331 Words06-14Mac USB-C Port Guide: Far More Than External Displays309 Words06-1310 Practical iOS Tips to Make Your iPhone Better - Part 2617 Words06-10How AI Notebook NotebookLM Revolutionizes Learning Methods?585 Words06-10How to Download and Install iOS 26 Beta259 Words06-0810 Practical iOS Tips to Make Your iPhone Better751 Words06-07Build Your Private Media Library with NAS for Viewing Freedom421 Words06-04Do MacBooks Need Screen Protectors?411 Words06-03Did You Know? The iPhone USB-C Port Is More Than Just Charging659 Words06-01Goodbye Siri: 5 Ways to Make ChatGPT, Doubao and Other AI Your iPhone Voice Assistant632 Words05-31Mac Mini M4 Accessories List: Building My Killer Workstation Setup129 Words05-29Getting the iPhone 16 Pro: Great, But Also Has Issues746 Words05-28How to Make Mac's Built-in Notes Better? This Tool Helps You Achieve It in One Step720 Words05-28Do You Really Need an iPhone Case?409 Words05-27Hidden macOS Tips You Probably Didn't Know510 Words05-26One Month In: Monetizing a WeChat Official Account369 Words05-22Applying for a Japanese Visa525 Words05-20AI Tools I Use Daily218 Words05-18WeRead Membership: How To Get the Best Price?240 Words05-17Real Experience: My Current Favorite Power Bank456 Words05-17Apple Removes the AirTag Battery Indicator from the Find My App323 Words05-15Hands-On Review: My Current Favorite Mouse693 Words05-10Real Experience: My Current Favorite Backpack664 Words05-06Guide to Apple Podcasts367 Words05-06Streamlining WeChat Official Account Article Editing398 Words05-06How to Read Source Code251 Words05-04Trip to Baotou, Inner Mongolia552 Words05-02Submit URLs to Baidu via API220 Words04-30Migrate Blog from Hexo to Hugo299 Words04-28Getting the DJI Osmo Mobile 7P Smartphone Stabilizer500 Words04-28Dart Development Guide in VS Code96 Words04-22Applying for a Wise Account140 Words04-20VSCode GitHub Copilot Usage Guide499 Words04-15FVM Usage Guide180 Words04-12Getting the iPad 11345 Words04-11GPT4o Drawing Prompt Collection63 Words04-07Mac: Errors Installing WeChat v4168 Words04-06Troubleshooting iPhone Text Message Synchronization Issues with Mac150 Words04-03Troubleshooting Apple Universal Clipboard Issues346 Words04-02Options for Compiling TypeScript114 Words04-02Frontend Basics — P3231 Words04-02Will There Be Webpack 6?133 Words03-31React Hook Form Usage Guide1428 Words03-25Tips about how to use highlight.js193 Words03-21Resumable Transfers with ssh2-sftp-client158 Words03-20Next.js Project Build and Release Speed Optimization149 Words03-20Connecting Xbox Controller to OpenEmu128 Words03-19Implementing JSON Schema-based Intelligent Suggestions in Monaco Editor215 Words03-19Getting the MacBook Air M4292 Words03-18Once Handling in EventEmitter105 Words03-17Loading node_modules Resources in VSC WebView243 Words03-14VSCode Extension Internationalization Support214 Words03-13The Host Field in HTTP Request Headers210 Words03-12Stripe Usage Guide60 Words03-12Using Screen Studio for Screen Recording165 Words03-10node-sass Discontinued Maintenance211 Words03-10Cloudflare Security Check289 Words03-09Using Firecrawl MCP in Cursor186 Words03-07CNCB Offline Mortgage Prepayment278 Words03-07Screen Time in Apple Systems78 Words03-02GitLink for VSCode: Seamless Cross-Platform Code Sharing Experience169 Words02-28Animated PNGs163 Words02-27Cursor User Guide349 Words02-24Getting the Mac mini M4194 Words02-20Building Real-time Web Page Ranking Monitoring with GitHub Action247 Words02-20Web Dev — Show Search Button on iOS Keyboard138 Words02-19ESLint Usage Guide9 Words02-14Understanding Refresh Rate270 Words02-14Webpack Plugin to Auto-Rename Variables175 Words02-13My Medium Earnings in 2024301 Words02-13npm Cache114 Words02-09Ways to Access DeepSeek Reliably206 Words02-07OpenResty Usage Guide170 Words02-07Handling Browser Compatibility in Vite79 Words02-06Achieving Ebook Reading Freedom277 Words01-311Password User Guide849 Words01-26Detect and Remove Unused Dependencies in Projects274 Words01-25Pipeline Optimization — Cache Directories176 Words01-24Converting MP3 and Other Formats to WeChat Silk Audio Files180 Words01-23One-Click Open VSCode Projects with Alfred139 Words01-22Using DeepSeek AI Translation with Eudic Dictionary183 Words01-21AI Usage in JetBrains IDE219 Words01-21Using DeepSeek291 Words01-15JD Plus Membership Tips266 Words01-08Viewing Key Performance Metrics in Chrome203 Words01-06Is Deploying Node.js on Multi-Core Machines a Resource Waste196 Words01-06Command Line Git Operations Repeatedly Prompt for Username and Password188 Words01-06Visiting Peking University Third Hospital567 Words01-042024 Year-End Review542 Words01-03Purchasing JetBrains AI Assistant from Low-Price Regions320 Words01-02Understanding peerDependencies321 Words01-01Must-Have Tools in 2024335 Words2024113 Posts12-31Click-to-Component Source Code Analysis382 Words12-28Elderly Parent Hukou in Beijing986 Words12-27Get GitHub Education Verification for Free Copilot Access164 Words12-26Enhance Development Experience with click-to-component310 Words12-25NAS with Alist Integration to Solve Quark Cloud Drive Viewing Experience Issues182 Words12-25Understanding JetBrains URL Scheme260 Words12-21Using Alfred to Retrieve Local Network Information68 Words12-19Registering WhatsApp125 Words12-16Updating GLIBC on CentOS 739 Words12-16Advanced Voice Mode Video Capabilities in ChatGPT341 Words12-14GZIP Compression Not Working?286 Words12-11Bundle Size Issues Caused by Misusing Lodash180 Words12-06useFieldArray in React Hook Form237 Words11-29Fantastical Usage Guide450 Words11-24Implementing Passwordless Login for Sites in iframes211 Words11-20Surge Configuration Tips: Subscription Nodes + Custom Rules221 Words11-20AntV X6 Diagramming Guide177 Words11-15Saving on AI: Subscribing to ChatGPT Plus via the Turkey Region460 Words11-14Synology Photos Usage Guide169 Words11-11Recommended YouTube Channels (for Chinese-Speaking Digital Nomads)254 Words11-07Monaco-Editor Implementation of Syntax Highlighting246 Words11-06Use Surge to Unlock Apple News Region Restrictions209 Words11-03First Apartment Hardware List195 Words11-02About ChatGPT Search291 Words10-30Which Option to Choose for Git Merge337 Words10-24Use the Custom name in the target attribute of <a> tag187 Words10-24Web Crash Caused by Styles in Chrome155 Words10-24Quickly Fix Bugs in Open Source Community Repositories340 Words10-22Browser Fingerprinting109 Words10-22Personal Hardware List288 Words10-18Understanding ua-parser-js451 Words10-17Frontend Visual Graph Editing87 Words10-10Invalid ZIP Package Issue When Compressing on Mac222 Words10-08Getting the Apple Watch S10323 Words10-07What You Need to Know About iPhone Mirroring268 Words10-07What You Need to Know About ChatGPT Canvas263 Words09-27What You Need to Know About OpenAI o1358 Words09-25What You Need to Know About ChatGPT's Advanced Voice Mode278 Words09-20Toutiao Search SEO61 Words09-19Passwordless Login for Linux Machines98 Words09-19Get the Current Directory of Any Selected File in WebShell178 Words09-17Introduction to babel-plugin-import271 Words09-17The registry under the npm command does not work374 Words09-14redux-logger Tree Shaking Not Working195 Words09-08Implementing SQL Autocompletion in Monaco Editor375 Words09-02Introduction to Claude394 Words08-25How Module Import Style Affects Bundle Size195 Words08-25Draw.io User Guide320 Words08-20Setting Environment Variables during SSH2 Connection176 Words08-19Using a Physical Giffgaff SIM1290 Words08-12Monitor Network Disconnection in WEB216 Words08-11Understanding OpenAI Function Calling1616 Words08-07Understanding ShellCheck239 Words08-06Trip to Shenyang, Liaoning246 Words07-26Large File Downloads with StreamSaver.js179 Words07-21Introduction to Wave Terminal618 Words07-20Introduction for GPT-4o mini171 Words07-14Handling Errors in Streaming Responses148 Words07-13Duolingo User Guide624 Words07-12Accessing Google Cloud VMs from Your Local Terminal446 Words07-07Installing Flarum on CentOS 7182 Words06-30Customizing Source Map Generation in Webpack169 Words06-30Line Separators in Text Files151 Words06-29Feasibility of Specifying a Startup File When Opening an SSH2 Session160 Words06-29About ChatGPT's Release Strategy341 Words06-16Enable HTTPS Decryption with Surge on Apple TV219 Words06-12OpenCloudOS SSH exec errors323 Words06-11tar: Ignoring unknown extended header keyword100 Words06-11Detect CPU Architecture in Shell Scripts96 Words06-10Enable Autosuggestions in Your Shell145 Words06-08FileSaver Source Code Analysis424 Words06-05ChatGPT iOS Supports Background Conversations222 Words06-02Security Component Scanning and Handling in Node Projects329 Words05-31Ping Requests in the Browser Network Panel264 Words05-29About ChatGPT Memory: What You Need to Know236 Words05-22About ChatGPT's Connected Apps:What You Need to Know327 Words05-18Trading U.S. Stocks Through Futu570 Words05-15login shell98 Words05-14About the ChatGPT Desktop App: What You Need to Know287 Words05-02Z-Library & Telegram: eBook Downloads75 Words05-01Xbox Remote Play150 Words04-29Automatic Review for User-Uploaded Images297 Words04-27File Contents Cleared When Writing via Stream969 Words04-22parseInt213 Words04-20Understanding Serverless via Tencent Cloud Functions264 Words04-20First Experience Recycling an MBP via Xianyu395 Words04-20Enable IPv6 on Home Broadband213 Words04-13Using SSE in AI Chat300 Words04-13attachCustomKeyEventHandler in xterm.js346 Words04-13Understanding TinyMCE's GPL License525 Words04-10Loading ES Modules in Node.js Projects111 Words04-02What is Shebang? A Guide for Scripting327 Words03-31Reading Large Files with FileReader242 Words03-31Common PowerShell Commands421 Words03-29Writing a Welcome Message in xterm.js155 Words03-21Terminal URL Scheme Support116 Words03-17Submitting PRs to GitHub Open Source Projects213 Words03-14Product Documentation Writing Guidelines140 Words03-03Debugging Local Packages with Pnpm and Vite: Common Issues and Solutions530 Words03-02JavaScript String trim() Method288 Words03-02HTTP3 Usage Guide226 Words02-25Understanding $TERM157 Words02-12Eudic Dictionary User Guide825 Words02-08Using GitHub Copilot CLI163 Words02-08Great Plugins for Hexo214 Words01-28Comprehensive Introduction to Fig421 Words01-23Microsoft Remote Desktop URL Scheme145 Words01-21Nine Years with My Mountain Bike249 Words01-20Writing TypeScript in Monaco Editor147 Words01-18Mastering Fig: Custom Autocomplete Specifications422 Words01-15Fig Completion Specification - Filter Highlight99 Words01-14An Introduction to the ssh2 Package326 Words01-01YouTube Kids Usage Guide237 Words202369 Posts12-30The DOM Event Model82 Words12-25Introducing xterm-headless227 Words12-25inshellisense Usage Guide758 Words12-23Using Tampermonkey209 Words12-20The inspect Command in Node257 Words12-20Common npm Packages for Frontend Development31 Words12-20Ways to Open a New Page in JavaScript129 Words12-16How to Use Caddy182 Words12-10guacamole-common-js152 Words12-10iframe-embedded code-server communication issues with host page276 Words12-09Online Failure - Hidden Timer Issues266 Words12-09Visiting China–Japan Friendship Hospital249 Words12-04code-server Usage Guide741 Words12-03Tools of the Year: 2023 Gear Review496 Words11-25Implementing Input Autocomplete Visuals162 Words11-23Copy/Paste Support in WebShell283 Words11-19Nintendo Switch Online Membership Purchase128 Words11-19Mousetrap Usage Guide443 Words11-18Command Palette in WebShell530 Words11-12Using keyboard.lock281 Words11-12Using ChatGPT GPTs619 Words11-05Displaying Images in WebShell235 Words11-01Using CSS :has() Function202 Words10-31Installing and Switching Shells113 Words10-27Netflix Membership Purchase372 Words09-29Getting the Dyson V8 Vacuum335 Words09-24Browser userAgent301 Words09-24Implementing SFTP File Management in WebShell429 Words09-23N1 Side Router Usage151 Words09-16Integrating AI into WebShell432 Words09-12Home Renovation Issues Record549 Words09-09Developing Mini Programs with Taro2189 Words09-05The time-style Parameter in Linux ls212 Words09-04Understanding NPS246 Words08-21Terminal Search in WebShell71 Words08-14CLI Flags: -v, -V, and --v224 Words08-06Kubernetes Quick Start Guide163 Words07-30Surge for tvOS Usage Guide292 Words07-25Bought a NIU Electric Scooter (MQiL)310 Words07-23Getting Started with Jupyter115 Words07-12JetBrains AI Assistant Usage338 Words07-09Using monaco-editor98 Words07-06Using xterm-addon-web-links215 Words07-03Introduction for OpenAI Moderation217 Words07-02ChatGPT Usage - Risk Management155 Words06-24AntiDebug Implementation393 Words06-18Bought an AirTag421 Words06-03Upgrade Blog Theme: 2.0153 Words06-02Purchasing AirPods 3323 Words05-27Telegram Usage Guide218 Words05-20ChatGPT iOS App Usage Guide177 Words04-26Deploy a Personal chatgpt-telegram-bot294 Words04-19Reading the ssh2 HTTPAgent Source Code252 Words04-05Implementing an Editor Proxy in WebShell73 Words04-05Frontend Image Compression in WebShell290 Words04-05Unofficial AirPods 2 Battery Replacement336 Words03-29OpenAI Embedding Usage435 Words03-26OpenAI Fine-tuning Usage289 Words03-26了解OpenAI类产品1423 Words03-11Registering a Marriage in Beijing338 Words03-06Custom Terminal Background Images in WebShell89 Words02-27Adding a PWA Shortcut to the Desktop383 Words02-11ChatGPT Plus Subscription686 Words02-04Using AList313 Words02-04Oracle Free Machine Usage391 Words01-27OpenAI Implementation for Generating Shell Commands from Descriptions380 Words01-21Bought EZVIZ C6C Home Camera481 Words01-022022 Year-End Review745 Words01-01Tools of the Year: 2022 Gear Review468 Words202286 Posts12-25Web Page Crashes Caused by File Downloads336 Words12-22Publishing Extensions to Chrome Web Store288 Words12-17Using ChatGPT800 Words12-07Handling Cancel Events for Input File Upload260 Words11-26Right-Click File Download in WebShell343 Words11-05Apple Family Sharing417 Words10-30GitHub Copilot Usage799 Words10-29Cannot use import statement outside a module142 Words10-20SSH Login Failure — Connection reset by peer102 Words10-17Understanding 127.0.0.1 vs. 0.0.0.0140 Words10-16What You Need to Know About App URL Scheme520 Words10-11Buying YouTube Membership (Turkey Region)273 Words10-07AddThis Share Button Service159 Words10-06Using Certbot275 Words10-02SSH Login to GitHub Failed194 Words09-24JSON vs BSON Comparison218 Words09-24About npm publish: Something you may not know.296 Words09-08Google Cloud 3-Month Free Trial265 Words09-04Understanding Proxies1558 Words08-26Shortcuts on iPhone261 Words08-21FreeBSD Password Login Timeout Error602 Words08-15A Trip to Handan, Hebei836 Words08-07How whoer Detects Your DNS Resolver157 Words08-01Hotkey Planning in WebShell550 Words07-30Spotify Usage Guide478 Words07-28Introduction to alternate screen208 Words07-24Understanding Makefile173 Words07-24Visiting Peking University People’s Hospital (PKUPH)399 Words07-23Discover Alfred Remote for iOS412 Words07-18Ubuntu 22.04 SSH-RSA Login Failure240 Words07-16Linux File Permissions241 Words07-03Character Encoding Basics466 Words07-01WeChat Official Account Failed to Upload GitHub Images377 Words06-28Whistle Usage Guide486 Words06-27Demystifying Terminals: Emulators, Shells, and More296 Words06-19Tencent Cloud API Docset for Dash373 Words06-12Getting Started with ssh2-sftp-client598 Words06-12The Journey of Mastering iTerm2639 Words05-29Blank Images While Drawing Mini Program Posters251 Words05-28Implementing One-Click Meeting Join with Alfred181 Words05-26npm Development Dependencies155 Words05-17Implementing sz/rz Upload/Download in WebShell373 Words05-15Extending JetBrains Toolbox App Browser Extension176 Words05-04Telegram Bot Development244 Words05-03Difference Between --help and man Commands200 Words05-02Establishing a Chinese Blog Translation Workflow178 Words05-02Migrating Blog Service to Tencent Cloud Hong Kong144 Words05-01iTerm2 integrated with Tmux426 Words05-01Bought an Xbox Series S516 Words04-30Domain Transfer In/Out172 Words04-25Applying for GitHub Sponsor268 Words04-23Automatically Append Prefix/Suffix to Storybook Titles235 Words04-13Remote Development IDEs220 Words04-09Whistle Plugin Development - remote-rules555 Words04-06About Alfred:Read the authentication code in your recent messages244 Words04-05Global Type Definition Issues in Third-party Packages146 Words03-28HTTPS Certificate Revocation347 Words03-20File Upload Accept Compatibility Issues219 Words03-19Glob Patterns229 Words03-09Using Keys and Certificates78 Words03-06Deriving Public Keys from Private Keys in JavaScript281 Words03-04Implementing Click-to-Open IDE Files in iTerm2266 Words03-01Refs in React464 Words02-27Disable Annoying WeChat URL Interception698 Words02-25Component Library Docs with Storybook347 Words02-19Synology Chrome Downloader Only Accepts HTTPS154 Words02-17nginx njs Upload Implementation157 Words02-14Storybook Build Error121 Words02-12Online Issue - WEB Page Stuttering519 Words02-08Pulling Images from a Private Docker Registry55 Words02-07Alpha in CSS385 Words02-03Create a Windows Bootable USB on macOS171 Words02-03Composition Events in JavaScript258 Words01-31Using Web Workers191 Words01-31Canvas Drawing with GIF Animation Issues410 Words01-30Using react-window263 Words01-29Alfred Workflow - Obtain App ID Quickly276 Words01-25Add Global Constants to a Frontend Project412 Words01-23US App Store Apple ID Payment Options312 Words01-18CLI Tool Spotlight: Master the `dig` Command369 Words01-12Chrome Extension Development Tips and Usage672 Words01-09Integrating Google AdSense574 Words01-09Tools of the Year: 2021 Gear Review441 Words01-092021 Year-End Review977 Words01-05Chrome Extension Packaging and Release700 Words01-03WakaTime Usage Guide175 Words2021105 Posts12-11Upgrade Blog Theme212 Words12-10Understanding WeCom (Enterprise WeChat) Bots212 Words12-06Implementing Tencent Gongfeng Project Search with Alfred273 Words12-05Bulk-Replacing Domains in a Frontend Codebase569 Words12-05Developing Alfred JS SDK - CLI Development328 Words12-05Understanding process.env.NODE_ENV176 Words12-04Apply for a CNCBI Hong Kong Card683 Words11-30Getting grpc-web Demo Running745 Words11-29NPM Package Installation - Understanding Warning Messages149 Words11-21Improve Frontend Code Quality with Tools — WeChat Mini Program231 Words11-20Mac External Camera335 Words11-13Questions About Capturing HTTPS Traffic with Whistle563 Words11-08Applying for 1Password License Using Open-Source Projects397 Words11-07Implementing One-Click Find iPhone with Alfred391 Words11-06Getting Apple TV: It has a learning curve, but it's really good820 Words10-30Using Vim323 Words10-29Common Issues in WeChat Mini Program Development658 Words10-24How uBlacklist Works202 Words10-23Hexo Blog Build Performance Optimization209 Words10-07Understanding RTL341 Words10-06Docker PostgreSQL Deployment Issues453 Words10-02Ionic Development Experience365 Words09-30Using Surge Together with Whistle453 Words09-29Nginx Access Error Caused by File Permissions313 Words09-24Alfred - Universal Action478 Words09-21Online Issue - ERR_CONNECTION_CLOSED550 Words09-20Add Copyright to Code File366 Words09-12Contributing TS Type Declarations to Open Source Projects201 Words09-06307 Redirect to HTTPS Error When Accessing WEB in Chrome409 Words09-05Dockerizing Frontend Build and Deployment211 Words09-05Lesser-Known TypeScript Types263 Words08-15Online Issue - Rendering Anomalies315 Words08-13Wireshark Guide261 Words08-08Zip Download Fails to Unzip in Frontend — Fix1899 Words08-07About .DS_Store on Mac263 Words08-04Surge Module Usage Guide395 Words07-25react/display-name406 Words07-24JavaScript arguments Object128 Words07-24When tsc Compiled to ES397 Words07-18sideEffects in package.json376 Words07-11Parsing ZIP File Uploads323 Words07-03GitHub Action Practice - Updating Workflow Version Badge330 Words06-27Understanding dva797 Words06-27Developing Alfred JS SDK384 Words06-20了解redux-duck1060 Words06-17One-Click Switching of Whistle Proxy Rules with Alfred172 Words06-14Enabling GitHub Two-Factor Authentication300 Words06-14Write a GitHub Action to Count Repo Stars356 Words05-10Implementing One-Click GIF Compression with Alfred178 Words04-23One-Click Do Not Disturb Mode Toggle with Alfred158 Words04-22Online Issue - HTTPS Certificate Error325 Words04-22Custom Calendar Publishing and Subscription341 Words04-18The == Operator in JavaScript174 Words04-17Understanding CDN375 Words04-11Install v8-debug71 Words04-04Chrome Extension Development: Jira Tool325 Words03-29Frontend Workflow — Scaffolding323 Words03-25Chained Assignment in JavaScript451 Words03-24JavaScript Prototype Chain Basics346 Words03-23Upgrading Webpack 4 to 5189 Words03-19iframe350 Words03-17Commonly Mistaken Export Statements344 Words03-16Proxy vs. Reflect in JavaScript242 Words03-16Web Security: CSRF376 Words03-14Web Performance: Reflow and Repaint107 Words03-12Frontend Code Security72 Words03-11Adaptive Layout & Responsive Layout181 Words03-08Clever Uses of Zero-Width Characters306 Words03-07JS下的Promise1171 Words03-06Great Plugins for Visual Studio Code300 Words03-06Same-Origin, CSP, and CORS350 Words03-05从输入URL到页面展示,这中间发生了什么896 Words03-03HTTP Development History692 Words03-02Chrome's MemoryCache and DiskCache264 Words03-01Confusing splice and slice306 Words02-28Array.join vs Template strings vs String concatenation297 Words02-27Frontend Performance Optimization Opportunities for the 12306 Homepage287 Words02-27window.opener295 Words02-24Maximum call stack size exceeded in JS317 Words02-19A Visit to the 306 Hospital449 Words02-18Percentage margin-top233 Words02-17Mind Mapping Tool Selection424 Words02-11Get Mac System Info Quickly with Alfred201 Words02-06Use Surge to Switch Proxy Modes Based on Wi-Fi164 Words02-05Choosing Between HashRouter and BrowserRouter on the Web212 Words02-02Managing Compatibility with Browserslist578 Words01-31Contributing to GitHub Projects217 Words01-28Improve Frontend Code Quality with Tools — SonarQube227 Words01-27Apply for JetBrains License Using Open-Source Projects454 Words01-27JavaScript Array Undefined Items165 Words01-26Inline JavaScript Event Binding206 Words01-26MySQL Left Join Query Record Count303 Words01-25Instant telegram notification if GitHub is Stared307 Words01-23Share Surge Proxy Across the LAN301 Words01-22Nintendo Switch Game Purchase Strategy359 Words01-18Optimize Table Performance in Frontend619 Words01-162020 Year-End Review559 Words01-15Difference Between yield and yield*398 Words01-11Extend AxiosRequestConfig in TypeScript175 Words01-10Frontend Storage Options290 Words01-09Implementing GIF Search with Alfred341 Words01-07Jenkins Continuous Integration - Publishing New NPM Packages376 Words01-02Tools of the Year: 2020 Gear Review711 Words01-02Third-Party Services Used by My Blog303 Words01-01Applying for a Wildcard Certificate500 Words2020140 Posts12-30Decrypting HTTPS with Surge460 Words12-27Frontend Basics — P2378 Words12-27Frontend Basics — P1766 Words12-20JSON vs XML Comparison583 Words12-20What Are Git Snapshots604 Words12-16Encoding Pitfalls to Watch207 Words12-10Using Touch ID and Apple Watch for sudo Authorization in Terminal353 Words12-08Web Performance: Reduce Re-Renders275 Words12-06JIT vs AOT325 Words12-06One-Click Audio Input/Output Device Switching on Mac with Alfred159 Words12-05Limitations of React's componentWillUnmount249 Words12-05Daily High-Frequency Alfred Workflows I Use and Recommend192 Words12-02TypeScript Enum vs. ES6 Symbol425 Words12-01rsync total size is 0 speedup is 0.00225 Words11-30Alfred Snippet VS Apple Text Replacement490 Words11-29Implementing One-Click Airdrop with Alfred140 Words11-28JavaScript Regular Expressions: Literal vs Constructor210 Words11-26Relearning Regular Expressions182 Words11-25One-Click Publishing from Hexo Markdown to Medium with Alfred280 Words11-22Buying Safari Online (O'Reilly) Membership via ACM209 Words11-17How to Set Up a Network Proxy in Terminal Shell230 Words11-16Alfred Workflow for Surge177 Words11-14External Microphone for Mac255 Words11-10Understanding TypeScript386 Words11-08A Loving Inn in Dali — Guanyuan385 Words11-07The 7 Habits of Highly Effective People - Book Review576 Words11-03Best Practices for Batch Updating Production Data423 Words10-31Daily Challenge — Predict the Rendered Value134 Words10-29Daily Challenge — Avoid Infinite Loop167 Words10-29Parent-Child Commits in Git Log142 Words10-26Book Notes: Life’s Moat (《人生护城河》)739 Words10-21Upgrading TypeScript to v4159 Words10-10Reading the Meituan Homepage HTML Source807 Words10-08Improve Frontend Code Quality — Stylelint226 Words10-08Review: AFTERSHOKZ Bone-Conduction Headphones241 Words10-04Understanding Error Boundaries632 Words10-03Implementing One-Click Translation with Alfred194 Words10-02Jenkins Continuous Deployment - Email Notification with ChangeLog357 Words09-26JavaScript Event Loop760 Words09-24Project Code Statistics355 Words09-21Weekend Reading: Two Reports327 Words09-18My iPad App List281 Words09-17My iPhone App List504 Words09-13Getting the ASUS RT-AC1900P321 Words09-06Java Log Management and Operations Analysis529 Words08-22Pro Git Reading Notes404 Words08-21Practical Tips for Using GitLab236 Words08-17Concurrency, Parallelism, Processes, and Threads413 Words08-17Escalation of Commitment441 Words08-12加入Medium Partner Program1158 Words08-08Improving Code Quality — Standardizing Git Commits403 Words08-08Git Configuration for Using Different Settings Based on Multiple Git Services366 Words08-02CI Optimization - Automated Merge Request Creation664 Words07-30Chrome DevTools Tips and Tricks406 Words07-27Setting Up the Android Environment for Ionic Development226 Words07-26Package.json Usage Tips and Tricks586 Words07-19Keep Translating248 Words07-12Two‑Way Data Binding605 Words07-10The Road to Upgrading and Downgrading Apple’s New OS513 Words07-06Understanding Closures588 Words07-05Lazy Loading Principles283 Words07-04Fancy Console154 Words07-03HTML Space Display Issues271 Words07-02Native Browser Support for JS Base64362 Words06-30Failed to load response data282 Words06-27ESLint Shared Configuration348 Words06-27Common Algorithm Problems488 Words06-27Software Metrics - Cyclomatic Complexity683 Words06-25Assertion Practices in JS Development and Debugging519 Words06-22KSA Model121 Words06-20Internet Access Solutions438 Words06-17Why Block-Level Elements Cannot Be Contained Within P Tags286 Words06-16Bought AirPods (2nd Gen)1283 Words06-15The Deprecated componentWillReceiveProps295 Words06-13react-intl v3 Upgrade548 Words06-12Learn to Ask Better Questions86 Words06-03Implementing WebSocket in Projects — Cluster Scenarios334 Words06-01Implementing One-Click Bluetooth Device Connection with Alfred288 Words05-31First Time Developing a Chrome Extension515 Words05-30Switching Blog Search to Algolia315 Words05-30Implementing One-Click Evernote Search in Alfred181 Words05-30Implementing One-Click OCR Screenshot Text Recognition with Alfred206 Words05-28Web Page Font Flickering Issues850 Words05-26Implementing One-Click OpenConnect VPN Login with Alfred318 Words05-23No Nested Ternary120 Words05-18Reading the Alibaba Java Development Manual316 Words05-16Architecture Decision Records — ADR205 Words05-16TypeScript Decorator Practice303 Words05-15Google Engineering Practices — CR and MR251 Words05-11Site Security - CSP391 Words05-09Understanding emoji1164 Words05-05Understanding Keyboards379 Words05-02Migrating from TSLint to ESLint308 Words05-02Migrating from ts-loader to babel-loader197 Words05-01Improving Redux Saga Error Readability141 Words04-30关于PayPal的使用534 Words04-29Quickly Copy File Paths on Mac329 Words04-19WebSocket Reading Notes486 Words04-16Implementing WebSocket in Projects565 Words04-15Implementing a Loading Middleware with Redux-Saga202 Words04-14Reading Notes on "Beginning CSS Preprocessors"498 Words04-11Case Styles in Frontend Programming238 Words04-11[Translation] Event Handler Naming in React435 Words04-06Playing with ThinkPad X1 Carbon 2019337 Words04-04Implementing One-Click Screenshot Upload to Image Hosting with Alfred393 Words04-04For Information Freedom — Part 3 (2020)149 Words04-02window.open Basics267 Words04-01JS Precision Math: Choosing big.js vs mathjs229 Words03-29Eliminating Dead Code in TS Projects361 Words03-28A Guide to HAR Files: Recording and Analyzing Web Requests252 Words03-23React Project Framework Upgrade312 Words03-19integrity in yarn.lock120 Words03-15Introducing CheckStyle to Improve Java Code Quality667 Words03-07lodash isEmpty334 Words03-07Deep Cloning in Redux State355 Words03-01JavaScript method vs function vs member713 Words02-28Dash Usage Guide on Mac219 Words02-27Git Team Development Process Specification - MR Conflict Resolution174 Words02-24Effective JavaScript Reading Notes958 Words02-20Important Details to Note When Using Antd764 Words02-19Thoughts on Code Coverage Scope in Code Review187 Words02-16Why I Hate Lodash338 Words02-16NPM Dependency Model290 Words02-09query-string@5 vs 6337 Words02-09Investigating Real‑Time Search Result Errors698 Words02-05Solving the Misalignment Between Antd Table Headers and Content Cells527 Words02-03Time Formatting in JavaScript247 Words02-02redux-saga-promise283 Words02-02regeneratorRuntime is not defined183 Words02-01IDEA Plugin - NPM Package Version History588 Words01-31Learning Retrospectives222 Words01-30Difference Between implements and extends in TypeScript154 Words01-30Refactoring (2nd Edition) — Book Notes739 Words01-23Tools I Bought in 2019516 Words01-21Publishing Public Packages to npmjs396 Words01-18Applying for a U.S. Visa715 Words01-14Don't Use Yoda Conditions in Frontend409 Words01-13NPM Indirect Dependency Version Issues325 Words01-12Unknown vs. Any in TypeScript115 Words01-012019 Year-End Summary1155 Words201967 Posts12-29PUT vs. PATCH in REST APIs387 Words12-29Global Exception Interception and Customized Error Handling in Axios454 Words12-28Redux-Saga Helper Functions581 Words12-24Duplicate identifier LibraryManagedAttributes166 Words12-22Read-only Nature of React Props498 Words12-21Migrate to a New Mac with Time Machine308 Words12-14Talking About the Axios HTTP Library309 Words12-08Improve Frontend Code Quality with Tools — Version Automation875 Words11-17Publishing Frontend Packages to Private npm Registry689 Words11-16Deploy V2Ray with Docker648 Words11-03Using Alfred for Efficient Word Lookup with Eudic Dictionary457 Words11-02Google Voice Usage Guide409 Words10-27Transforming VSC into a Tool to Complement IDEA248 Words10-27Dictionary vs Map vs Object707 Words10-23Type Issues When Using React with TypeScript897 Words10-20Reading Notes: Redux in Action837 Words10-16Governing the Frontend API Layer511 Words10-15interface vs type in TypeScript242 Words10-13Essential JetBrains IDE Plugins340 Words10-10React Debugging - Plugins268 Words10-06One-Click Connection to Cisco AnyConnect Secure Mobility Client338 Words10-05Redux-Thunk Source Code Walkthrough615 Words10-04Modern Frontend Optimization: A Deep Dive into Tree Shaking654 Words10-03My Chrome Extension List388 Words10-02React Project Unit Testing1130 Words10-02Jest Unit Test Configuration436 Words10-01Abandoning Navicat, Switching to DataGrip576 Words09-28Automate Tasks with Hammerspoon147 Words09-28JSX.Element vs React.ReactNode Comparison377 Words09-27Frontend Route Design99 Words09-26MacBook Pro 2015 Model External Dual Monitor Setup530 Words09-22Accessing Intranet Domains Over VPN314 Words09-22Misunderstandings About put Operations in Redux-Saga962 Words09-15Introduction to Webpack HMR677 Words09-10TSLint Does Not Catch TypeScript Errors182 Words09-08Creating Email Templates in Apple Mail240 Words09-07Handling Exceptions in Redux-Saga558 Words09-04My Experience After Two Weeks with the Bose 700774 Words09-01Implementing Less and CSS Modules in Projects1071 Words08-25Home Synology NAS DDNS Setup474 Words08-20IDEA Polishing Journey - Live Templates662 Words08-18Using Alfred to Switch Maven Settings with One Click224 Words08-18Type Casting vs. Type Assertions in TypeScript279 Words08-11Using Web Fonts in Frontend724 Words08-08OOBootcamp Training Insights683 Words08-04Jest Less Import Error754 Words07-28Frontend React Project Structure and Conventions538 Words07-24Splitting Frontend i18n Files438 Words07-07Azure Free Trial for 1 Month297 Words06-23Building Smart Home 1.0488 Words06-23Registering a US Apple ID542 Words06-16Upgrading Angular 7 to 8307 Words06-02IDEA Plugin Development667 Words05-26Learning PlantUML - A Powerful Drawing Tool377 Words05-26Upgrading Angular 6 to 7373 Words05-26Automating Blog Platform Deployment504 Words05-19[Translation] Evaluating Redux Saga Test Libraries1455 Words04-21[Translation] Given-When-Then in JUnit Tests581 Words04-21My Mac App List610 Words04-06Getting the NAS DS218j622 Words04-06About Alfred: What you need to know1992 Words03-18A Frontend White Screen Incident506 Words03-092018 Year-End Summary992 Words02-17dependencies vs devDependencies835 Words02-09Surge for macOS Usage Guide673 Words02-05An Awkward No-Network Experience on My Phone359 Words01-01Improve Frontend Code Quality with Tooling388 Words201856 Posts12-09Tools I Bought in 2018380 Words12-09Git Merge vs Rebase: Differences and Choices465 Words12-04Using Redux in React696 Words11-11[Translation] Core JavaScript Concepts798 Words11-04On Sync, Async, and Cross-Origin320 Words10-28Angular VS React [Translation]1372 Words10-27Filco Minila Air Mechanical Keyboard Setup266 Words10-22Modifying and Saving Static Resources in Chrome Developer Mode242 Words10-14Puppy Vacuum D531 — First Impressions289 Words10-04Export Nintendo Switch Screenshots186 Words09-15Simplify OpenConnect with Shell + expect137 Words09-09Mac Hotkeys:Boost Your Productivity1043 Words08-11Babel vs. TSC294 Words07-29Setting Up Mock Server with Postman365 Words07-24What's New in Node.js 10793 Words07-07Commonly Used Docker Commands507 Words07-06Migrating Blog Services to a Domestic Server264 Words07-01[Translation] Promises vs Observables2186 Words06-30[Translation] TypeScript vs. JavaScript: Should You Migrate Your Project to TypeScript?1045 Words06-30How to Import Third-Party JavaScript in Angular Projects331 Words06-26Cannot find module inherits198 Words06-24My First Experience with Docker607 Words06-20hexo-error130 Words06-20[Translation] Bootstrap 3 vs 4531 Words06-18Building a Hexo-Based Blogging Platform267 Words06-17Downgrade iOS from Beta to Stable190 Words06-02Nginx Configuration for Domain-Only Web Access143 Words05-30Enabling HTTPS for a Website390 Words05-27Nginx User IP Passthrough123 Words05-22[Translation] Differences Between Angular 1 and 2302 Words05-13As a programmer, here are my thought96 Words05-05Upgrading Angular 5 to 6308 Words05-01PhantomJS Installation262 Words04-22Personal Toolkit — Hardware457 Words04-20Caching Static Assets for Frontend438 Words04-14Mobile Frontend Debugging398 Words04-07oh my zsh Configuration File Not Loading120 Words04-06My First Encounter with Surface452 Words03-25Jenkins Continuous Integration - WAR Package Deployment213 Words03-19HTTP Referer in HTTP Requests187 Words03-18Linux File System252 Words03-04Understanding next in Express.js230 Words03-04Install Maven in Zsh on Mac66 Words02-25jiathis HTTPS Unsupported Solution144 Words02-21Git Team Development Process Specification241 Words02-21Designing a Token-Based Authentication Flow52 Words02-19Adding OpenSearch to a Website166 Words02-18Ionic: 2017-18 Roadmap1468 Words02-17GitHub Pages Custom Domain HTTPS Configuration135 Words02-14Angular 6 New Features and Improvements300 Words02-06Detecting Safari Private Browsing Mode107 Words01-27Upgrading Angular 4 to 5354 Words01-14Setting 2018 Goals209 Words01-10User Authentication with Frontend–Backend Separation612 Words01-01Tools I Bought in 201752 Words01-012017 Year-End Summary857 Words201760 Posts12-30Jenkins Continuous Integration - Setup and Configuration532 Words12-23jsPlumb Usage Guide1039 Words12-14Multi-platform Blog Hosting with GitHub and Coding234 Words12-13Full-Stack Deployment: Angular + Express on CentOS462 Words12-12ES6 Common Issues80 Words11-29Uninstall Node.js on macOS315 Words11-27Git Multiple Remote Repository Configuration130 Words11-26oh-my-zsh Chinese Character Encoding Issues105 Words11-04dagre-d3 Usage Guide558 Words10-26Common Issues in Angular Development1506 Words10-23My Roadmap for Learning Angular346 Words10-17How to Make Phone Interaction GIFs72 Words10-16POST Data Encoding Methods391 Words10-11Fix "JavaScript heap out of memory" During Build166 Words10-09Cordova Development Common Issues705 Words10-04mysql error: Invalid default value for date59 Words10-02PHP Environment Setup420 Words09-29Common Issues with Xcode Simulator154 Words09-28Chrome Device Mode Screenshot White Screen Issue226 Words09-25Analyzing Alibaba Cloud CDN 403 Errors358 Words09-25Code Continues After res.send?256 Words09-24Angular Development - loadChildren Duplicate Path Issue134 Words09-24Using sz/rz for Uploads and Downloads on Linux138 Words09-20Tomcat Configuration Gotchas29 Words09-12Windows CMD: Common Commands62 Words09-06TypeScript Version Always Shows 1.049 Words09-03Network Proxy in WeChat Browser417 Words08-24A Lightweight App Development Approach209 Words08-19Install and Configure vsftpd on Linux102 Words08-10HTML Anchor Links Inside Email127 Words08-04Understanding DDNS251 Words07-30Solving the Missing SDK Manager Issue in Android Studio160 Words07-25[Translation] webpack 3: Official Release272 Words07-22Using iPic Image Hosting Tool191 Words07-22Solving Lazy Loading Failures in Angular AOT Builds286 Words07-22JavaScript heap out of memory96 Words07-19Nginx Redirect POST Request Data Loss Issue131 Words07-15The Programmer's Journey5219 Words07-14Pitfalls When Wrapping an H5 Site with Cordova1099 Words07-11Redis Installation Guide on Linux497 Words07-09Git Submodule Usage Guide273 Words07-09Ionic OAuth Authorization260 Words07-05Git Submodule Use Cases454 Words07-04Automate Blog Deployment with Travis CI108 Words07-02Packaging Mobile Sites Using Cordova482 Words07-02What is Cordova221 Words07-01Angular 5: The Countdown Begins219 Words06-26Mobile Screen Mirroring to Computer Tools33 Words06-11NativeScript Beginner's Guide222 Words06-05Git Configuration - Using Corresponding SSH Keys for Multiple Git Services289 Words05-31Express.js: Getting Client IP Behind Proxies264 Words05-30Ionic Android Signing and Build79 Words05-30Using Ionic Native Plugins in the Browser251 Words05-21Ionic CLI v3 Release518 Words05-15Common Linux Commands Reference707 Words05-10Webpack Build: File Hash Unchanged Despite Content Changes — Analysis and Fix311 Words05-06Introducing Ionic v4235 Words05-05Git Common Commands1196 Words03-29Implementing File Downloads with Express388 Words03-13Introduction to Android Decompilation469 Words20167 Posts12-312016 Year-End Summary337 Words10-16Using Sessions in Express328 Words10-07Custom Rules for ShadowSocks114 Words10-06Mid‑Year Summary 2016249 Words09-19PM2 Introduction1345 Words09-10Nginx Installation and Configuration376 Words09-03Personal Tech Blog Launched178 Words
07-14Getting the Redmi Note 13 5G: A Sub-$1000 Phone with Many Issues, But What More Can You Ask For?654 Words
06-30[Translation] TypeScript vs. JavaScript: Should You Migrate Your Project to TypeScript?1045 Words