Blog

Switching Blog Search to Algolia

Migrated from Swiftype/local search to Algolia on Hexo + NexT: account setup, keys, theme and site config, indexing, and pitfalls.

May 30, 2020

Implementing One-Click Evernote Search in Alfred

This article explains how to implement one-click Evernote search in Alfred, including why it is useful, the implementation details, and related resources. These steps can improve Evernote search efficiency.

May 30, 2020

Implementing One-Click OCR Screenshot Text Recognition with Alfred

This article introduces implementing one-click OCR screenshot text recognition with Alfred, including OCR advantages, implementation details, and related resources to improve OCR efficiency.

May 30, 2020

Web Page Font Flickering Issues

Diagnosing custom font flicker and practical fixes: CSS extraction, font preloads, file formats, font-display strategy, and how browsers load assets.

May 28, 2020

Implementing One-Click OpenConnect VPN Login with Alfred

This article introduces how to implement one-click OpenConnect VPN login using Alfred, including the advantages of OpenConnect VPN login, implementation details, and related resources. These steps can help improve the efficiency of connecting to OpenConnect VPN.

May 26, 2020

No Nested Ternary

This article introduces the no-nested-ternary rule, including its advantages, implementation details, and relevant resources. These steps can help improve efficiency when avoiding nested ternary expressions.

May 23, 2020

Reading the Alibaba Java Development Manual

Thoughts after reading Alibaba’s Java Development Manual (Taishan Edition) and how to internalize the conventions.

May 18, 2020

Architecture Decision Records — ADR

An introduction to Architecture Decision Records (ADRs): why teams need them, how to use them, and a template to start.

May 16, 2020

TypeScript Decorator Practice

Overview of TypeScript decorators, how to enable them, and a practical example transforming Redux action types.

May 16, 2020

Google Engineering Practices — CR and MR

Takeaways from Google’s engineering practices on changelists (CLs), merge requests (MRs), and code reviews (CRs).

May 15, 2020

Site Security - CSP

Why CSP matters for site security, how to configure it via headers or meta tags, and common policies worth enabling.

May 11, 2020

Understanding emoji

What emojis are (characters, not images), encoding basics, why JS string length varies, and practical notes.

May 9, 2020

Understanding Keyboards

A quick primer on keyboard terminology: modifier keys, zones, layouts, and customization tools.

May 5, 2020

Migrating from TSLint to ESLint

TSLint is deprecated—here’s why you should migrate, what the roadmap says, and both automated and manual steps to switch to ESLint.

May 2, 2020

Migrating from ts-loader to babel-loader

Why I switched from ts-loader to babel-loader, sample configuration, performance notes, and common questions.

May 2, 2020

Improving Redux Saga Error Readability

This article introduces improving Redux Saga error readability, including usage scenarios and implementation details to enhance Redux Saga error readability efficiency.

May 1, 2020

关于PayPal的使用

本文介绍关于PayPal的使用,包括使用场景、实现细节等,以提高关于PayPal的使用的效率。

Apr 30, 2020

Quickly Copy File Paths on Mac

This article introduces quickly copying file paths on Mac, including advantages, implementation details, and related resources that can help improve efficiency when copying file paths on Mac.

Apr 29, 2020

WebSocket Reading Notes

Notes from reading a book on WebSocket, including its purpose, security, related protocols, the OSI model, and key interactions with HTTP.

Apr 19, 2020

Implementing WebSocket in Projects

Spring Boot + React example for broadcasting events via WebSocket/STOMP, plus deployment gotchas.

Apr 16, 2020

Implementing a Loading Middleware with Redux-Saga

Shows how to toggle global loading masks at the saga layer, wrap effects with middleware, and avoid repetitive spinner code.

Apr 15, 2020

Reading Notes on "Beginning CSS Preprocessors"

This article introduces the book "Beginning CSS Preprocessors", covering its advantages, implementation details, and related resources to improve efficiency in using CSS preprocessors.

Apr 14, 2020

Case Styles in Frontend Programming

Common case styles (Pascal, camel, kebab, snake, dot) and pragmatic conventions by context.

Apr 11, 2020

[Translation] Event Handler Naming in React

This post translates and discusses naming conventions for event handlers in React, with practical guidance and references.

Apr 11, 2020

Playing with ThinkPad X1 Carbon 2019

This article introduces playing with the ThinkPad X1 Carbon 2019, including usage scenarios and implementation details to improve efficiency with the ThinkPad X1 Carbon 2019.

Apr 6, 2020