5 kilometers
即兴山河
骑行随笔:江苏到贵州的3个月骑行
雨夜巷粥
雨湿深巷静,灯浮小店明。
轻游记
入境随感
没那么好,没那么坏
回廊
寻根
四季
消失的年轮
都市失忆症漫谈
都市蒙太奇
好久不见
无题
摆脱束缚,拥抱自由
读《逃避自由》
你不控制媒介,媒介将控制你
读《娱乐至死》
如何改变习惯
命运的玩笑
人生是一场均值回归的游戏
如何告别信息焦虑
这世界不存在信息过载,只有过滤失败。— Clay shirky
Tell good stories about technology
On the importance of knowing the history of a technology
Why I left the US
Caveat: not personal advice
Busy living or busy dying
The paradox of life
Pain and pleasure are not separable
Two sides of the same coin
A regret maximization framework
How to be regretful for software engineers
React state management in 3 lines
Technology as a friend
SF half marathon
The 5-hour workweek
The exotic “achievement” from work
Slow down
Rhythm is the name of game
Reverse engineer a GPT chatbot
How to build a chatbot with this blog’s data
My AI Avatar
AI avatar made by Midjourney
Asking questions to solve problems
The mental framework for problem solving
Run TS from CLI
A blazing fast ts-node alternative
Talk to ChatGPT in BDD
Listen. Don’t tell.
asdf: another package manager
the ultimate version manager for programming languages
The 5 Elements of Effective Thinking
https://amzn.to/3q7FO55
State management in React
2022 review
2022 articles
A few articles that inspire me the most in 2022
Ditch the lie of inaction
We don’t learn then start, we start then learn.
Vite <3 React
Vite & React starter kits
Self host Plausible with Fly
Plausible.io 💜 Fly.io
Bye Heroku, hey Fly.io
Migrate datastore for this blog’s comment system
Waking up membership
New PHP or the Future
100 thing challenge
Fuse a bit of randomness into life
Let the randomness rule
Changing perspective
Glass half full
The busy bubble
Not better than parents
We’re more than what social norm expects
Hills run made easy
Heads down to live in presence
Be a bit unhelpful
Let the bullets fly for a while
Terrible photo taker
Focus on the right thing
Mbti
Mbti as a tool, not the territory
Fix rss feed
Migrating software
Modernize legacy system one piece at a time
Naming is hard but important
The hardest thing in programming?
It’s fine to repeat
Learn the basics well
Basics don’t die
Thinking tools
Personal decision making guide
Bad doesn't need a reason
Leave a trail of footprints that sucks to pave the walkway
Compromise isn’t indifference
Deal with it or accept it?
My “PIP” experience
Performance improvement plan that’s not scary
SF 10k race
First 10K race towards Marathon
Mamba mentality
The power of the mind
One week digital decluttering
An one week experiment of digital declutter process proposed by Cal Newport’s book Digital Minimalism
Why I don't read news
What’s new isn’t what’s good or right
Complaining is futile
A life debugger
A manual for fixing life issues
Bad tool traps you, good tool empowers you
Pick up the right tool
Beware of fruitless arguments
Focus on what matters
Fitting goals into a job, not in it
Tailor your job to your own interest
Jump into conclusions
Observe, don't act
Why we {}
Life is too short to…
Filesystem routing with webpack
Webpack plugin for next.js style routes
Learning React the hard way
My regrets on learning React
Shared dev command in monorepo
Typescript monorepo done differently
Why Remix
It all boils down to technical taste
React Query is great but...
single page apps could be done better
Webpack bundling UMD module
Better not have to deal with it at all
You might not need dev proxy
State of modern web
The current landscape of web frontend tooling
不忙
Camera isn’t meant to replace experience
To capture or to experience?
Escape the rat race
Escape competition through authenticity
回笼觉
Life isn’t a lottery ticket
Make luck a remnant of design
Lifestyle mirage
The illusion of upgraded lifestyle
山路夜骑
2026.3.2,贵州谷硐镇(前往贵定,高德导航)
The complacency prison
Why growth is stagnated?
小胖子后来怎么样了
There is only one corner of the universe you can be certain of improving, and that's your own self. — Aldous Huxley
医生 VS 鼓手
自动贩卖机
“If you’re not paying for the product, you are the product.”