Spotify is a well-known music streaming app that I’ve been using for many years. I really like it, so here I’ll share the pros and cons. I also recommend it to users who can access it.
Aug 18, 2025
While browsing the metamask-extension source code, I saw a field in package.json: “packageManager”: “yarn@4.9.1”, but when checking yarn on npm, the latest version is still 1.22.22. Strange, so how does the actual project install this v4 yarn? After careful investigation, I found that it uses corepack for package manager and version management.
Aug 12, 2025
Recently, an open source project needed to implement a web3.js library, so I researched the leading web3.js library - ethers.js. Code Size The source code is written in TypeScript, with actual code size around 90k lines.
Aug 5, 2025
Recently, two reasons led me to decide to subscribe to Claude Pro: 1) Claude Code is too popular, and 2) GPTs’ understanding of system prompts always fails, meaning the logic is not strong enough. Therefore, I decided to try Claude Pro. Here I’ll mark how I solved the Claude Pro US subscription issue.
Aug 4, 2025
This article introduces methods for retrieving user avatars and nicknames in mini-programs, including new API usage, compatibility handling, and best practices to help developers correctly implement user information retrieval functionality.
Aug 4, 2025
Recently, family members asked how to mirror their phones to the TV. It seems many people still don’t know about this feature, so I’ll introduce various methods for mirroring mobile devices to TV and share my personal usage experience.
Aug 2, 2025
After Cursor gained popularity, Claude Code emerged as another powerful tool. Who would have thought that coding in the terminal could be so impressive? When I saw it trending, I was curious and decided to try it out. I hit some snags initially, but after some tinkering, I finally got it working—and I must say, it’s really great. Here I’ll document the basic usage.
Aug 1, 2025
Recently, an open source project needed an H5 version, so I decided to try Tailwind. Here I’ll mark down my understanding and feelings after using it. For learning materials, the official website is of course the top recommendation. Here I’ll mainly share my rough understanding.
Jul 24, 2025
Problem interface User { parent: { name: string; }; age: number; name: string; } type Column = { key: keyof User; }; const columns: Column[] = [ { key: 'name' }, { key: 'name1' }, { key:'parent.name' } ]; Solution type Paths<T> = T extends object ? { [K in keyof T]: `${Exclude<K, symbol>}${"" | `.${Paths<T[K]>}`}` }[keyof T] : never type Column = { key: Paths<User>; }; In addition to writing your own Paths type, you can also use existing libraries, such as the Path type from type-fest.
Jul 22, 2025
Recently, a family member’s phone became too outdated, so we decided to get a new one. Since she was previously using a Redmi Note series phone, I chose to stick with a relatively newer model from the same Redmi Note lineup. Staying with the same brand means she can continue with familiar system usage habits without additional learning costs.
Jul 14, 2025