My new hobby project....
I'm looking for a new job....
The joys of vibecoding....
From handles to hosting....
The protocol is the API....
matplotlib -- the de-facto library of plotting in Python. seaborn -- the golden tool for statistical...
Programming with proofs....
What is the type of 2 + 2 = 4?...
A taste of Lean....
I heard you like linting....
Personal update post....
A layered module system....
Quoting for modules....
Why streaming isn't enough....
One does not simply serialize a module....
What do HTML, GraphQL, and RSC have in common?...
You wouldn't download a site....
Islands, but make it fractal....
Tags on both sides....
Two worlds, two doors....
Learn TypeScript cursor-rules for AI development. Covers best practices, JSDoc, structure. Different...
Composing across the stack....
Turning your API inside-out....
...
Two things, one origin....
TypeScript announced a full rewrite of TypeScript in Go. In testing, this rewrite has achieved a 10x...
TypeScript 5.8's new erasableSyntaxOnly flag enforces pure type annotations by disabling enums, name...
TypeScript is coming to Node 23. Let's break down what that means....
To quote myself in a most recently yet-to-be-published paper: 💪 The ability of deep neural networks...
Learn how to extract the type of an array element in TypeScript using the powerful `Array[number]` t...
Learn how to publish a package to npm with a complete setup including, TypeScript, Prettier, Vitest,...
Enums in TypeScript can be confusing, with differences between numeric and string enums causing unex...
Is TypeScript just a linter? No, but yes....
It's a massive ship day. We're launching a free TypeScript book, new course, giveaway, price cut, an...
Learn why the order you specify object properties in TypeScript matters and how it can affect type i...
Learn how to use `corepack` to configure package managers in Node.js projects, ensuring you always u...
Learn TypeScript by setting up a pro environment, using advanced IDE features, and mastering type an...
Learn how to strongly type process.env in TypeScript by either augmenting global type or validating ...
Discover when it's appropriate to use TypeScript's `any` type despite its risks. Learn about legitim...
Learn why TypeScript's types don't exist at runtime. Discover how TypeScript compiles down to JavaSc...
Improve React TypeScript performance by replacing type & with interface extends. Boost IDE and tsc s...
In this book teaser, we discuss deriving vs decoupling your types: when building relationships betwe...
Learn how TypeScript's new utility type, NoInfer, can improve inference behavior by controlling wher...
Learn how to set up TypeScript to bundle a Node app using pnpm, Node.js, TypeScript, and ES Modules ...
TypeScript 5.5 introduces type predicate inference from function bodies, simplifying type narrowing ...
Learn why it's not possible to restrict the type of children in React components with TypeScript....
Learn how to make TypeScript functions more flexible and type-safe by using type parameters instead ...
Learn how to handle errors when using Array.reduce to transform arrays into objects in TypeScript. F...
Whether you use let or const in TypeScript affects whether or not their values can be changed, and h...
Learn how to use typescript generics to pass types in constructs like Array and Set....
In TypeScript, the `as never` type assertion is occasionally needed when dealing with unions of func...
Using the method shorthand syntax for function annotations in TypeScript can result in runtime error...
Learn about the limitations of React's `forwardRef` TypeScript and discover a solution to enable inf...
UI = f(data)(state)...
The limits of my language mean the limits of my world....
TypeScript boosts productivity but faces pitfalls like type mismatches, null values, & puzzling erro...
TypeScript 5.3 introduces relaxed rules around readonly arrays and improvements in const type parame...
Understand how Type Predicates work in TypeScript, using an example of filtering a mixed array of el...
Learn how to provide a TypeScript playground when asking for help with your TypeScript questions, ma...
Learn how to work with events in React and TypeScript, from onClick to onSubmit....
A step-by-step guide on setting up ESBuild to bundle a Node application....
When using '--moduleResolution' with the option 'nodenext', it is necessary to add explicit file ext...
Learn how to add TypeScript to your existing React project in a few simple steps....
It has been a while since my last update. And to be fair, 2022 was a very boring and event-less year...
Yep, that’s the title There’s no click-bait. Though I’m at home working remotely, meaning that I hav...
Hey again. It has been a year since I last talked about building a blog with Notion. A lot has chang...
Found 99 vulnerabilities (84 moderately irrelevant, 15 highly irrelevant)...
!!! success "🛸 我免费啦" (^^ゞ 从 4 月 1 号开始的十天自我隔离终于结束啦! 不知道大家有没有发现,不过我确实 人在英国,刚下飞机。今天是我十天隔离的最后一天,明天我就正式可以...
!!! bug "🔥" An update in 2022: Revisiting blogging with Notion in 2022. Yup, yup, yup! (Paimon nois...
Rendering optimizations that come naturally....
Welcome 2021. 昨天(2020/1/1)我也才刚刚从北京回家的高铁上下来,现在我坐在刚搬来的新家里,用着陪伴了我快 3 年的机械键盘,写下这份迟到了一天的碎碎念。希望大家不要嫌弃。...
起因 这件事情还要从我校为毕业生收拾行李开始讲起。今年六月末北京疫情复发,这一波直接让我们北京高校毕业生无法返校,个人行李物品必须由学校老师代为整理快递回家。这件事情让同级的同学们非常不满,于是微博知...
Come waste your time with me....
After trying many apps, my favorite macOS color picker remains the built in utility. It's only shown...
I had an idea for caching SVG paths. Not the usual kind of async request caching of remote SVGs, but...
If you want to add custom CSS to a website without using a browser extension, you can proxy the site...
SWR is a React hook for data fetching that features a cache for requests. This is generally used to ...
There is no previous sibling selector in CSS. Instead, we can achieve the same behavior by using fle...
It's difficult to transition between themes smoothly. Adding a CSS transition to every element negat...
Nine days after first writing this post, the Next.js team landed support for paths in tsconfig.json ...
The text-decoration: underline CSS property provides insufficient control over the underline styling...
I have trouble falling asleep. Too many ideas and thoughts from a day with too little activity, I su...
Let clean code guide you. Then let it go....
A personal reflection....
UI Before API....
So which one should I use?...
Styled System is an excellent alternative to writing ad-hoc style declarations in your React compone...
Getting a closure on JavaScript....
My crappy superpower is solving difficult problems as I'm falling asleep. Doesn't sound too bad, rig...
A favorite quote from an old friend. I really admire that there are people of all ages that are able...
I find great satisfaction in writing beautiful code. Very few will ever see this effort and apprecia...
Have you noticed that some people write extremely well? Take Aaron Swartz' article "Believe you can ...
I am consistently unhappy with my creative output. My job title includes designer, but I'm not good ...
Dead code elimination by convention....
They’re not burritos....
Turning an idea into a talk....
I created Dusk to make my dock look more visually harmonious. LiteIcon does a great job of automatin...
A change starts with a story....
Four principles to set you on the right path....
I began my Computer Science degree with an intensive introduction course in C. We used makefiles to ...