Skip to content

Instantly share code, notes, and snippets.

View indexzero's full-sized avatar
🗽
✊ Fist in the air in the land of hypocrisy

Charlie Robbins indexzero

🗽
✊ Fist in the air in the land of hypocrisy
View GitHub Profile
@indexzero
indexzero / download.md
Last active February 4, 2026 03:16
rspack build analysis

How Rspack Downloads the Correct Binary for Each Platform

Rspack uses npm's optional dependencies feature combined with platform filtering to ensure users only download the binary for their specific OS and architecture.

The Mechanism: Optional Dependencies + Platform Filtering

1. Optional Dependencies in @rspack/binding

The main @rspack/binding package (crates/node_binding/package.json) declares all platform-specific packages as optionalDependencies:

@indexzero
indexzero / PROXIES.talk.md
Created January 30, 2026 18:17
Proxies: fast enough for config objects? Probably?

Proxies: From Pariah to Performant

claude cosplaying as the V8-team speaking at JSConf


The Proxy Problem

When ES6 Proxies shipped in 2015, they came with an asterisk. The spec gave us something genuinely powerful—metaprogramming primitives that could intercept fundamental object operations—but the performance story was grim. Internal benchmarks showed property access through a Proxy running 50-100x slower than direct access. We told developers "use sparingly" and hoped for the best.

@indexzero
indexzero / README.md
Created October 9, 2025 03:53
Extract threaded comments from Github Discussions pages in DevTools

GitHub Discussion Thread Extractor

A Chrome DevTools script to extract structured comment data from GitHub discussion threads.

Usage

  1. Navigate to a GitHub discussion page
  2. Open Chrome DevTools Console (Cmd+Option+J on Mac, Ctrl+Shift+J on Windows)
  3. Paste the extraction script
  4. Run it to get JSON structured data
@indexzero
indexzero / README.md
Last active July 17, 2025 14:24
The "as simple as possible npm-init.js file with zero dependencies"
@indexzero
indexzero / PRINCIPALS.md
Last active January 16, 2026 16:58
Principles of Note: a list of select principles that have been particularly useful in helping design, refine, and debug complex systems (both computer & human)

Principles of Note

A list of select principles that have been particularly useful in helping design, refine, and debug complex systems (both computer & human)

Any organization that designs a system (defined broadly) will produce a design hose structure is a copy of the organization's communication structure.

@indexzero
indexzero / npm-downloads-2022.txt
Last active February 17, 2022 05:03
Total downloads for indexzero in last-month: 399,423,177
@exemplar/native-storybook: 7
@exemplar/storybook: 9
@exemplar/storybook-react: 35
@exemplar/storybook-react-native: 6
@gasket/assets: 310
@gasket/cli: 641
@gasket/data: 225
@gasket/engine: 505
@gasket/fetch: 212
@gasket/helper-intl: 230
@indexzero
indexzero / .gitignore.yahrzeit
Last active February 4, 2023 18:27
Simple Yahrzeit calculator using Hebcal package
# Ignore things not in the gist
*
!facade.js
!hebcal.js
!README.md
!temporal.js
!why.png
@indexzero
indexzero / gather.js
Last active August 15, 2019 16:06
Basic puppeteer CSS coverage. Adapted from https://stackoverflow.com/a/48452214
const puppeteer = require('puppeteer');
const util = require('util');
const fs = require("fs");
const path = require('path');
(async (url) => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.coverage.startCSSCoverage();
await page.goto(url);
@indexzero
indexzero / output.log
Created May 30, 2019 18:33
Execution semantics for async functions not invoked with await
executeMultiple | start
executeMultiple | end
executeMultipleAsync | start
executeMultipleAsync | end
executeMultiple | execute1
executeMultipleAsync | execute1
executeMultiple | execute2
executeMultipleAsync | execute2
executeMultipleAsync | callback
@indexzero
indexzero / index.html
Created April 17, 2019 08:00 — forked from jjgonecrypto/index.html
es6 proxy #jsbench #jsperf (http://jsbench.github.io/#531652a2edfa806a5014558bafe6eb0e) #jsbench #jsperf
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>es6 proxy #jsbench #jsperf</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script>
<script src="./suite.js"></script>
</head>
<body>
<h1>Open the console to view the results</h1>