Items tagged "javascript"
Grats: A More Pleasant Way to Build TypeScript GraphQL Servers
Bringing Implementation-First GraphQL to TypeScript via a novel static analysis approach.
![](/_next/image/?url=%2Fuploads%2F2024%2Fgrats.png&w=3840&q=75)
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.
![](/_next/image/?url=%2Fuploads%2F2024%2Flogic-bug.webp&w=3840&q=75)
?? "" is a Code Smell
Defaulting to empty string is a lie we tell our type checker.
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.
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.
![](/_next/image/?url=%2Fuploads%2F2024%2Fprecedence.png&w=3840&q=75)
Open .ani Animated Cursors Online
I made a simple website where you can instantly open and view any .ani file for free.
![](/_next/image/?url=%2Fimages%2Fopen-ani-online.png&w=3840&q=75)
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".
![](/_next/image/?url=https%3A%2F%2Fimg.youtube.com%2Fvi%2FhZzjrgZb-mw%2Fhqdefault.jpg&w=3840&q=75)
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.
![](/_next/image/?url=%2Fimages%2Fbutterchurn-wasm%2Fbutterchurn.png&w=3840&q=75)
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.
![](/_next/image/?url=%2Fimages%2Fani-cursor.png&w=3840&q=75)
Mainlining Nostalgia: Making the Winamp Skin Museum
Thoughts on what I think made the Winamp Skin Museum successful.
![](/_next/image/?url=%2Fimages%2Fwinamp-skin-museum-small.png&w=3840&q=75)
Implementing a Robust Web Audio API Balance Node
After more than four years, I'm finally happy with how Webamp implements balance.
A Tour of Winamp2-js Features
Demo videos of Winamp2-js' more interesting features with notes on how they are implemented.
![](/_next/image/?url=%2Fimages%2Fwinamp%2Fthree-windows-screenshot.png&w=3840&q=75)
Crash Safari with the Web Audio API
Discovering, reproducing, and working around a bug that crashes Safari hard.
Markdown Today: Journal from any browser
A private, mobile-first web app that writes your journal directly to Dropbox.
![](/_next/image/?url=%2Fuploads%2F2024%2Fmarkdown-today-screenshot.png&w=3840&q=75)
Gzip hates your DRY code
How to remove code and still increase your library weight.
Functional JavaScript: Learn by refactoring
Learn the basics of functional programming by iteratively refactoring imperative code.
The game Snake in 90 lines of JavaScript
I wrote a minimal implementation of the game Snake in JavaScript.
You're underusing Underscore
Ten common mistakes people make when using Underscore, and a linting tool to detect them.
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.
Jerkll: A tiny static site generator that runs in your browser
Replacing Jekyll with 14 lines of run-anywhere JavaScript.
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.
![](/_next/image/?url=%2Fcontent%2Fimages%2Fhashbin-sample.png&w=3840&q=75)
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.
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.
Drawing mandalas with JavaScript and canvas
Rewriting a PHP script from 2008 in JavaScript.
![](/_next/image/?url=%2Fimages%2Fmandala.png&w=3840&q=75)
I'm glad I factored out jQuery
I refactored Winamp2-js to not depend on jQuery, and learned native JavaScript is not so bad.
Infinite javascript array using AJAX
A simple way to asynchronously load suggestions into an array in JavaScript.
How the React model tames N by N code complexity
Explaining how exactly the UI = f(state) model tames code complexity
Itsy Bitsy Data Structures
Sharing this repository which teaches data structures through charmingly commented JavaScript implementations
![](/_next/image/?url=%2Fnotion-mirror%2F84ebb48c-616a-4f51-ae9a-991a4e0a7e9b%2Fec74f66b-df48-4fa8-b4ca-7bdbca242aeb%2FScreenshot_2024-08-01_at_8.37.15_PM.png&w=3840&q=75)
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
![](/_next/image/?url=%2Fnotion-mirror%2F84ebb48c-616a-4f51-ae9a-991a4e0a7e9b%2F727fb2ac-8f96-4964-8790-c88490cb5417%2FScreenshot_2024-07-24_at_11.53.31_AM.png&w=3840&q=75)
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
How Relay Enables Optimal Data Fetching
Sharing a blog post I wrote about what makes Relay so special
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
![](/_next/image/?url=%2Fnotion-mirror%2F84ebb48c-616a-4f51-ae9a-991a4e0a7e9b%2F2d5211c8-c670-4e1e-a4e3-03db6a74bef1%2FUntitled.png&w=3840&q=75)