HNHacker News
TopNewBestAskShowJobs

joshuakgoldberg

122 karma · joined October 24, 2016

submissionscomments
joshuakgoldberg··on TypeScript types can run DOOM [video]
Nothing will ever top this for typescript types. This is the pinnacle. An entire virtual machine and system memory with garbage collector in types.

Turing Completeness is one level, but being able to run Doom is the real test of whether a programming environment is complete and robust. Absolutely stunning to see TypeScript's type system get there.

joshuakgoldberg··on [dead]
Security is important. Overusing report mechanisms for non-actionable noise is counterproductive.
joshuakgoldberg··on [dead]
One of 2023’s biggest trends for web tooling was rewriting existing tooling in Rust. Rust is a wonderful programming language that allows for shockingly fast binaries which still interop well with other web tools courtesy of WebAssembly. The speedups seen in tools such as swc and Turbopack are very exciting for fast development experiences.

But! It’s a misconception to think that Rust-based linters are a complete and total replacement for ESLint today. There are always tradeoffs when switching tooling. In this case, the positive performance advantages come with a negative feature gap: type-checked linting.

joshuakgoldberg··on [dead]
Finding and eliminating thousands of calls to recreate a giant regular expression in a popular open source emoji plugin.
joshuakgoldberg··on [dead]
Parts 2 & 3 of a blog post series on touching up performance in the centered.app web app. These pushed the Lighthouse performance score from 36 to 51 by pruning a multi-MB unused asset & working around a (since-fixed) bug in barrel export detection.
joshuakgoldberg··on [dead]
Part 1 of an ongoing blog series describing performance investigations & improvements on the popular centered.app web app. This one implemented over-eager loading on a page that was loading 81 <iframe>s at once (!).
joshuakgoldberg··on [dead]
I've applied to >100 conferences and spoken at about a third of them. Prospective or first-time speakers often ask me for advice - so, finally, here's a walkthrough for how I apply to conferences along with FAQs. I hope you find this helpful! :)
joshuakgoldberg··on The `satisfies` operator – Learning TypeScript
TypeScript 4.9 introduces a new operator, satisfies, that allows opting into a different kind of type inference from the type system's default. satisfies brings the best of type annotations and default type inference together in a useful manner.
joshuakgoldberg··on We improved React loading times with Next.js
I'm so excited about this . It's a testament to how well-built-up modern frontend tooling is, especially around React. The things that used to take hundreds or even thousands of lines of config can now be done in a few dozen at most with managed libraries. And better!
joshuakgoldberg··on Six Months of Full Time Open Source: A Retrospective
Personal notes from an open source maintainer of their first six months of full time maintenance.
joshuakgoldberg··on Choose Your Framework: open-source Pokemon clone with UI libraries as starters
An implementation of Oak's Lab from the original Pokemon games, but with Angular, React, Solid, Svelte, and Vue instead of starter Pokemon. It's written in TypeScript and hosted on GitHub. The game's JavaScript on its own is <50kB compressed; the full site uncompressed is <256kB. Have fun!
joshuakgoldberg··on Extreme explorations of TypeScript's type system
These are wonderful, thank you!
joshuakgoldberg··on Extreme explorations of TypeScript's type system
This is great!
joshuakgoldberg··on Extreme explorations of TypeScript's type system
TypeScript's type system is Turing Complete: meaning it has conditional branching (conditional types) and works with an arbitrary huge amount of memory. As a result, you can use the type system as its own programming language complete with variables, functions, and recursion. This blog post is a starting list of a bunch of the shenanigans TypeScript developers have pushed the type system to be able to do.
joshuakgoldberg··on A complete guide to TypeScript’s 'never' type
Great writeup on `never`, love to see it!