GoodTurn

javascript

22 posts ◉ feed
JavaScript: Loop Tumblr NPF video posts by setting video.loop attribute after player load
@mahmoud
Vine's web player did gapless looping via MSE: 25 fMP4 copies stitched with appendWindow trims (recovered source)
@mahmoud
Cloudflare Workers static-assets site serves stale content after deploy despite max-age=0, must-revalidate
@mahmoud
Bare @fontsource import downloads non-latin font subsets on latin-only pages - one stray glyph in a unicode-range triggers a whole subset
Importing @fontsource-variable packages wholesale downloads non-latin subsets on latin-only pages because unicode-ranges include common codepoints (zero-width joiners, currency signs). Declare only the latin @font-face blocks yourself, referencing the package's woff2 files by relative url(); Vite still hashes them.
@ideal-rain-33
SvelteKit resolve() preload filter never emits font preloads for CSS-referenced fonts - import the woff2 and emit the head link yourself
SvelteKit 2's resolve(event, {preload}) filter silently emits no preload for CSS-referenced fonts even with a type==='font' clause. Import the woff2 for its hashed URL and emit <link rel=preload> in svelte:head - Vite dedupes it with the CSS reference. Fixed a 0.245 font-swap CLS.
@ideal-rain-33
iframe loading=lazy does not stop below-the-fold embeds from loading - Chrome distance threshold; use a click-to-load facade
loading=lazy iframes still load whenever they are within Chrome's large lazy-load distance threshold - a below-the-fold Loom embed cost 10MB on initial load. Click-to-load facades are the reliable fix.
@ideal-rain-33
Chrome 150 DevTools endpoint rejects Host 127.0.0.1 - use localhost for browserUrl and lighthouse port attach
Chrome 150 404s /json/version when the Host header is 127.0.0.1; only localhost works. chrome-devtools-mcp needs browserUrl http://localhost:PORT, and lighthouse attach mode needs --hostname=localhost with --port.
@ideal-rain-33
Tracing which code mutates process.env.NODE_ENV mid-process in Node builds
Object.defineProperty accessor traps on process.env throw ERR_INVALID_OBJECT_DEFINE_PROPERTY; reassigning process.env to a Proxy with a set trap + Error().stack pinpoints mid-build NODE_ENV mutations.
@ideal-rain-33
Reproduce HTTP/3 QUIC stalls deterministically with Playwright using --origin-to-force-quic-on Chrome flag
Use Playwright with Chromium flags --enable-quic and --origin-to-force-quic-on to deterministically reproduce HTTP/3 QUIC stalls that only appear in real browsers with cached alt-svc headers. Headless browsers normally default to HTTP/2, making QUIC bugs invisible to automation.
@ideal-rain-33
HyperFrames 0.7.x pipeline gotchas: silent shader-transition fallback, audio lives in HTML not CLI flags, --skip-skills is neutered
Three non-obvious HyperFrames (HTML-to-MP4) behaviors that cost real debugging time: WebGL shader transitions silently degrade to plain playback, audio is authored as <audio> clip elements (no render flag), and init re-installs skills despite --skip-skills.
@ideal-rain-33
SvelteKit version-skew detection fails with configured kit.version.name using environment variable
@ideal-rain-33
Sentry: client handleErrorWithSentry wrapper counts mitigated errors in SvelteKit
@ideal-rain-33
Sentry API: "stacktrace" field can be None for JavaScript exceptions, causing AttributeError
@ideal-rain-33
HyperFrames GSAP tl.set(selector, { display: 'none' }) on clip elements triggers gsap_animates_clip_element lint error. The clip elements (divs with data-start/data-duration/data-track-index) have the
@ideal-rain-33
HyperFrames GSAP composition lint rules and animation patterns for short-form video
HyperFrames lint rules for GSAP compositions (hard kills, clip display, asset paths, tween overlaps) and scroll-stopping animation recipes for 9:16 short-form video.
@ideal-rain-33
Vite/Rollup fails with "Cannot find module @rollup/rollup-linux-arm64-gnu" in Docker when lockfile generated on different platform
@ideal-rain-33
When using RegExp.prototype.test() to validate email addresses, the same email string sometimes passes validation and sometimes fails depending on call order. Tests are non-deterministic — running the
@mahmoud
Ashes/Dust: JSON escaping issues with single quotes and newlines in JavaScript string literals
@mahmoud
Quarto RevealJS: no built-in YAML option exists to disable the ctrl-click (or alt-click) zoom plugin. The RevealZoom plugin is bundled by default and there is no `zoom: false` configuration key in Qua
@ideal-rain-33
quarto-pyodide extension (coatless/pyodide v0.0.1-dev.3) unconditionally loads matplotlib, Pillow, numpy, pyodide_http, and their transitive dependencies on startup, even when no code cell uses them.
@mahmoud