Brad Zacher

@brad.zacher.com.au

Computer scientist. Cider drinker. Dungeon Master. Maintainer of @typescript-eslint.io Software Engineer @ Canva. https://zacher.com.au

Used an agent for profiling for the first time today. It was pretty cool to let it just run some tools and try to find some potential improvements. It came up with some vague suggestions I was able to grow and iterate on for some decent wins!

📝 New blog post: Revamping the `ban-types` rule. For many years, ban-types was one of our more prominent rules. We split it into targeted rules that better addressed common user needs. Read on for how it came to be & what those new rules do better! typescript-eslint.io/blog/revampi...

Revamping the `ban-types` rule | typescript-eslint

How the now-deprecated `ban-types` rule evolved over time to what is now several newer, targeted rules.

typescript-eslint.io

If you look closely and squint you can just barely make out which week I landed several hundred PRs to migrate some of Canva's codebase to isolatedDeclarations

Screenshot of github's contribution dot visualisation where almost every square is muted green meaning "less contributions" except for one week which is bright green meaning "more contributions".

The visualisation is meant to work like a heat map, but because the number of contributions in that week was many hundreds of times greater than the other weeks, it's colours ruined the scale making everything else the same, indistinguishable colour.

I have setup my first "home lab" with proxmox! For my first VM I setup a remote devbox! It took waaaay longer to get it working than I'd care to admit... But I can connect to it via vscode and everything! Now to spin up a few more VMs for things I've always wanted to run...

Has anyone got a good guide to setting up a Ubuntu machine to accept (local) SSH connections? Configuring the base image from scratch is not super easy when you've never done it before :harold:

Okay I just got a Beelink SER9 for use as my remote devbox and server host. Now to figure out how to install linux on it... boy it's been a long while since I've done this.

If I ever see someone's comment and it says "you're absolutely right" I now automatically assume that they are either an LLM bot or that they're copy pasting from one. It's such a shame that we have to deal with this slop contribution in our opensource projects.

One major issue I've found with package.json imports over tsconfig paths is usage across "boundaries". A package.json import spec cannot include a file outside the current dir -- eg it can't start with `../`! They also don't "bubble" through nested package.jsons!

Been seeing an uptick in what are clearly vibe-coded PRs. On the surface this seems great -- more contributors! But in the reality it's often AI slop that the person hasn't reviewed and instead the burden of review is on us, the maintainers -- which is a horrible trade.

Panel 1: Bus driver saying "Don't make me tap the sign"
Panel 2: The bus driver tapping a sign that says "Engineers must review all AI generated code"

I asked cursor's AI agent to try to create a small TUI form. It went HORRIBLY. After a while it declared the task as done despite numerous compiler errors. When I told it that it wasn't done. This was the agent's response:

I've been doing a bunch of work on a meta-linter of sorts and so I need to ingest results from many different linters. A really painful problem I've discovered recently is that nobody is consistent about how to define a "location" in text. It's a surprisingly complex space to try and reconcile!

I finally started using copilot a few weeks ago. As a skeptic I didn't think that I'd like it so I was surprised to find I actually have found value in it. (Humble brag) I've met very few people who can pump out code as fast as I can. So I didn't think that copilot would really make me much faster.

The most frustrating thing about providing support to someone is when they use words like "this / that / it". I tried that, but it errored Tried what? What error? Show what you tried! There's a good chance you did "it" wrong! After all that's why you're asking for help.

TypeScript-ESLint v8.15.0 has been released! This release includes: - a fix for the recent crash introduced with ESLint v9.15.0 - support for arrays in `tseslint.config` (no more spreads necessary!) - a new rule `no-unsafe-type-assertion` - and more...! github.com/typescript-e...

Release v8.15.0 · typescript-eslint/typescript-eslint

8.15.0 (2024-11-18) 🚀 Features eslint-plugin: added related-getter-setter-pairs rule (#10192) eslint-plugin: new rule no-unsafe-type-assertion (#10051) eslint-plugin: [prefer-nullish-coalescing] f...

github.com

Thanks for filing this issue. We generally look at bug reports in order of most-succinct repro to most-complex repro. We have currently scheduled this one for three weeks after the heat death of the universe.

I made an eslint utility that allows finer control over no-restricted-syntax/globals/properties configurations. In a nutshell it generates a plugin that has one rule per selector -- allowing granular disable comments and better auditing! github.com/bradzacher/e...

GitHub - bradzacher/eslint-no-restricted: An eslint plugin for quickly and easily creating no-restricted-syntax rules

An eslint plugin for quickly and easily creating no-restricted-syntax rules - bradzacher/eslint-no-restricted

github.com

👋 Welcome to Bsky, everyone! I'm jumping on the starter pack bandwagon and making one for the static analysis folks around JavaScript/TypeScript. Projects like ESLint, TypeScript, and new fancy versions of them all. Who else should go on it? go.bsky.app/5hwBPTK

Post nicht verfügbar.