Items tagged "javascript"
Mainlining Nostalgia: Making the Winamp Skin Museum
Thoughts on what I think made the Winamp Skin Museum successful.
Speeding Up Webamp's Music Visualizer with WebAssembly
Writing an in-browser compiler to compile untrusted user-supplied code to fast and secure Wasm at runtime.
Interesting Bugs Caught by ESLint’s no-constant-binary-expression
I contributed a rule to ESLint that catches a surprisingly wide variety of logic bugs.
Grats: A More Pleasant Way to Build TypeScript GraphQL Servers
Bringing Implementation-First GraphQL to TypeScript via a novel static analysis approach.
Rendering Animated .ani Cursors in the Browser
Technical breakdown of how the NPM module ani-cursor converts .ani files into CSS animations in the browser.
A VSCode Extension to Clarify Operator Precedence in JS
I wrote a VS Code extension which shows subscript parentheses in your JS code to help clarify operator precedence.
A nice way to render Markdown in React apps
A pattern for rendering Markdown in React apps directly from an AST without any serialized HTML
I gave a talk about compiling to WebAssembly in the browser
Video of my TSConf 2021 talk entitled "Faster, Safer: Compiling Untrusted Code to WebAssembly in the Browser".
Rendering “modern” Winamp skins in the browser
Writing an interpreter for a custom bytecode opens the door for rendering interactive custom Winamp skins in the browser
The Super Tiny Compiler
A tiny compiler written in JavaScript perfect for hands on learning
Open .ani Animated Cursors Online
I made a simple website where you can instantly open and view any .ani file for free.
How Winamp2-js loads native skins in your browser
How we get from a binary Winamp skin file to seeing Winamp2-js take on the look of your favorite skin, all within the limitations of your browser.
Markdown Today: Journal from any browser
A private, mobile-first web app that writes your journal directly to Dropbox.
My GraphQL Conf 2024 talk: Semantic Nullability
Youtube video of the talk I gave at GraphQL Conf 2024 covering advanced client error handling and its implications for potentially fundamentally solving the problem of pervasive nullability in GraphQL
Turning the database inside-out with Apache Samza
This post on scaling data systems taught me to understand Redux
Using Notion as my CMS with Next.js
Why I chose to use Notion as the backing CMS for the Notes portion of this site, and the technical details of how it’s implemented
I'm glad I factored out jQuery
I refactored Winamp2-js to not depend on jQuery, and learned native JavaScript is not so bad.
Client data should not need to exceed O(screen size)
A rule of thumb for thinking about scaling client application state
Implementing Python's Context Manager Pattern in JavaScript
Python Context Managers are a great way to model resources with setup and teardown. Here's how to implement that pattern in JavaScript.
The Birth & Death of JavaScript
Sharing this classic brilliant, hilarious and prophetic talk about the crazy language that is JavaScript
How Relay Enables Optimal Data Fetching
Sharing a blog post I wrote about what makes Relay so special
Reactive GraphQL Architecture
A vision for using GraphQL on the client for local-first apps, apps using e2e encryption, and other apps with heavy client state
I think my new paste bin should be immune to takedown notices
I recently released a new website called HashBin which avoids being able to see the content the pastes it helps create.
How the React model tames N by N code complexity
Explaining how exactly the UI = f(state) model tames code complexity
You're underusing Underscore
Ten common mistakes people make when using Underscore, and a linting tool to detect them.
100k skins: Reflections on the Winamp Skin Museum’s upload flow
A technical breakdown of the Winamp Skin Museum’s over-engineered upload flow, and how it helped create a positive feedback loop
no-unused-binary-expressions: From code review nit to ecosystem improvements
How implementing an ESLint rule led to changes in how people write JavaScript
Creating the Shepard Tone audio illusion with JavaScript
The Shepard Tone is an audio illusion that creates the impression of an endlessly rising or falling tone.
Crash Safari with the Web Audio API
Discovering, reproducing, and working around a bug that crashes Safari hard.
Implementing a Robust Web Audio API Balance Node
After more than four years, I'm finally happy with how Webamp implements balance.
Drawing mandalas with JavaScript and canvas
Rewriting a PHP script from 2008 in JavaScript.
Web Audio regression in Safari iOS 17 Beta
Documenting a regression, I observed in iOS’ implementation of the web audio API
On ephemeral UI, fragile app state, and anxiety
Ephemeral UI make us nervous because we’ve learned that there’s a high likelihood lose our state by accident
Can’t use Shiki (and likely other Wasm-based tools) in Next 13 server components
A bug I hit with Skiki and Next 13
A Tour of Winamp2-js Features
Demo videos of Winamp2-js' more interesting features with notes on how they are implemented.
I archived all the Tweets referenced by my blog
Preserving Tweets
Code golfing interview questions
A very silly code golf solution I came up with that I’m still amused by ten years later
Itsy Bitsy Data Structures
Sharing this repository which teaches data structures through charmingly commented JavaScript implementations
The Chrome team is working with the SQLite team on an official Wasm build
SQLite is getting an official Wasm build
The game Snake in 90 lines of JavaScript
I wrote a minimal implementation of the game Snake in JavaScript.
Gzip hates your DRY code
How to remove code and still increase your library weight.
?? "" is a Code Smell
Defaulting to empty string is a lie we tell our type checker.
Jerkll: A tiny static site generator that runs in your browser
Replacing Jekyll with 14 lines of run-anywhere JavaScript.
UriBin: A self-replicating paste bin that lives in url shorteners
I wrote a mad-scientist project that creates self-replicating paste bins that live in URL shorteners.
Webamp can pose for the camera
Webamp.org has a feature that lets it pose as if it were in action
Infinite javascript array using AJAX
A simple way to asynchronously load suggestions into an array in JavaScript.
Functional JavaScript: Learn by refactoring
Learn the basics of functional programming by iteratively refactoring imperative code.