Haoqun Jiang

Haoqun Jiang

@haoqun.dev

@vuejs.org core team member. @vite.dev core team emeritus. Worked on JS tooling. Learning new things. https://haoqun.dev/

457 followers1K following84 posts

If I remember correctly, the repository was gone almost exactly 4 months ago today after the community became aware of the attack. I don't if it was suspended by GitHub for 4 months, or the attacker closed the account themselves and then reopened it. Anyway, it's a new pattern.

One benefit of having good physical modeling of the motion system is that you can build delightful visualizations very easily. Much more compelling than function graphs.

Finally built a truly native-feeling bottom sheet for the web. Turns out it’s surprisingly hard to get right, even with good reference implementations.

Negative parallelism, antithetical parallelism, rhetorical padding, aphoristic compression, metaphorical reification, conceptual sloganization, interpretive closure... AI really is a master of rhetorical packaging.

I learned so much about English rhetoric in trying to get rid of the AI feel in my writing. The techniques I once wanted to learn to improve my English writing are now things I have to avoid to improve my English writing...

#TIL Cloudflare Pages still runs Node.js 22.16, while many packages now require 22.18+. This can break native packages that ship platform binaries via `optionalDependencies`, because pnpm silently drops those binaries when the Node.js version doesn't meet the requirement.

#TIL Cloudflare Pages still runs Node.js 22.16, while many packages now require 22.18+. This can break native packages that ship platform binaries via `optionalDependencies`, because pnpm silently drops those binaries when the Node.js version doesn't meet the requirement.

#TIL iOS Safari limits the frame rate to around 60fps by default, and you can turn it off to enjoy a smoother web browsing experience (Settings -> Safari -> Advanced -> Feature Flags -> Prefer Page Rendering Updates near 60fps)

Using coding agents to explore multiple ideas at once has been really fun. But the project has grown to the point where I can’t easily do a full line-by-line review anymore 🥲 I need to find a realistic way to make it production-ready.

One more reason to use @pnpm.io and @npmx.dev: trust policy downgrade becomes visible and preventable

Socket@socket.dev

🚨 Active supply chain attack on axios@1.14.1. The latest version pulls in plain-crypto-js@4.2.1 -- a brand-new package that didn't exist before today. We're still investigating. If you use axios, pin your version and audit your lockfile. socket.dev/blog/axios-n...

TIL that IPv4 over IPv6 is a mainstream home internet setup in Japan to avoid old PPPoE limits. It took me back to my college years in China, when I was playing with IPv6 over IPv4 because native IPv6 wasn’t widely available. It’s really interesting to see how differently things evolved here.

lmao 🤣

Gergely Orosz@gergely.pragmaticengineer.com

Status pages everywhere show green, because Statuspage.io is ALSO down: customers cannot log in to update their status page and indicate the outage their eng teams know about!! So a fail for Statuspage to depend on an AWS region... or DynamoDB (that seems to depend one AWS region?)

Haoqun Jiang reposted

Haoqun Jiang reposted

Finally, finally! SALVATION HAS ARRIVED! Time to refactor every GitHub Actions workflow! 🎉

Seb ⚛️ ThisWeekInReact.com@sebastienlorber.com

OMG - GitHub Actions now supports Yaml Anchors This somehow means you can create Yaml variables and reuse common values in CI jobs I thought I'd never see this day happen

Wow, this was unexpected. I've got mixed feelings, but huge congrats to the team!

I am delighted to announce that @vercel.com are investing in Nuxt! they are backing our vision of the open web, hiring me as well as other core team members (@atinux.com, @pi0.io + @antfu.me), to continue to work full time on Nuxt we remain independent — and our vision and ethos are not changing 💚

Finally. I wish the community could migrate from the `packageManager` field to `devEngines` following this - always pinning versions is good in theory but way too cumbersome in practice.

Socket@socket.dev

📌 Just hours ago, the Node.js TSC officially voted to stop distributing Corepack. Future Node.js releases (i.e. 25+) won’t include it, but it will remain available separately. socket.dev/blog/node-js... #nodejs #javascript

Haoqun Jiang reposted

This thing is so useful. Especially for security - ensuring the published package is actually what exists in the source

Passle ☭@passle.dev

TIL npm diff docs.npmjs.com/cli/v11/comm... (via @43081j.com on the @e18e.dev discord)

Haoqun Jiang reposted

Resurfacing this post now that pnpm 10 is tagged as latest.

In my experience this new default doesn't break many projects. But it might slow down some native packages a bit. For example, packages like esbuild, lightningcss-cli try to optimize their binaries in the postinstall scripts; these will no longer be executed by default: github.com/evanw/esbuil...

Note it's not about their Node APIs (so Vite isn't affected), just when executing the binaries (i.e. `pnpm exec esbuild`) there will be a performance hit.

@acemarke.dev Hi Mark, I just noticed that the Bluesky link on your GitHub profile is invalid since you changed your handle. Just wanted to give you a heads-up in case you'd like to update it

Bluesky@bsky.app

📢 App Version 1.96 is rolling out now (1/6) In this release: a notifications Mentions tab, reserving your default username when you verify your account with a domain, and other improvements!

@acemarke.dev Hi Mark, I just noticed that the Bluesky link on your GitHub profile is invalid since you changed your handle. Just wanted to give you a heads-up in case you'd like to update it

Bluesky@bsky.app

📢 App Version 1.96 is rolling out now (1/6) In this release: a notifications Mentions tab, reserving your default username when you verify your account with a domain, and other improvements!

And in case you still want that username, you can temporarily change your handle back and forth to reserve it. This feature was introduced about a month ago: bsky.app/profile/bsky...

Bluesky@bsky.app

📢 App Version 1.96 is rolling out now (1/6) In this release: a notifications Mentions tab, reserving your default username when you verify your account with a domain, and other improvements!

The discoveries are really cool, though

Chandler Carruth @chandlerc.blog

The gift that keeps on giving: predictors.fail This is IMO a great example of why **process isolation is the only path to confidentiality on modern CPUs**. Site- (or origin-) process isolation continues to be the path. Also note: the CPU is **not** the problem here IMO, it's doing exactly its job.

Haoqun Jiang reposted

I forked Bun's internal allowlist for those who need the protection from this new default but don't want to bother reviewing every dependency one-by-one: github.com/haoqunjiang/...

github.comGitHub - haoqunjiang/build-scripts-allowlist: An up-to-date list of common NPM packages that need to run lifecycle scripts during installation.An up-to-date list of common NPM packages that need to run lifecycle scripts during installation. - haoqunjiang/build-scripts-allowlist
Socket@socket.dev

Big changes in @pnpm.io 10.0.0: Lifecycle scripts are now blocked by default to combat supply chain attacks. This change is widely supported but comes with some friction. socket.dev/blog/pnpm-10... #NodeJS #pnpm #JavaScript

The intrusive design is mostly due to the intrinsic complexity that makes overriding rules in plain array configs almost impossible without knowing the underlying implementation. Type-aware linting in Vue + TypeScript needs a complete overhaul… which I'd like to work on after this stop-gap measure.

Haoqun Jiang reposted

SCOTUSblog IS HERE!!! I’ve been missing them since they left X. As I don’t use TikTok, I’ve had no easy way to follow them (well, I don’t feel like checking websites regularly for updates). So glad to see this account again on a social network!

SCOTUSblog@scotusblog.com

Good morning! We're expecting more opinions from the Supreme Court today at 10 EST. Follow along for live updates, a thread: