RSSAmplifier

Blog

Zero Wind :: Jamie Wong

jamie-wong.comRSS feed ↗20 posts

Latest posts

The Hole in the Sky That We Actually Fixed

For Sale: A Promise to Remove Invisible Gas

In a select few corn fields after a harvest, the unwanted stalks, leaves, and cobs are fed into a storage container on the back of a long-haul truck. These agricultural wastes won’t be hitting the road in their loose, fluffy state though. The storage container doesn’t start empty. It contains a complex chemical machine fine-tuned to efficiently convert the corn detritus into three chemical…

Debugging Misadventures: Down the Rabbit Hole

For the past few years for Christmas, I’ve asked people in my family for stories from their lives rather than a physical gift. Last year, my sister Emma, who works as a dentist, asked me for the same. This is the story I sent my sister, along with some illustrations by my very multitalented coworker Jessica Liu . A lot of my day-to-day work as a software engineer involves debugging. We expect the…

A potential employee’s guide to Silicon Valley startup equity

You’re done your interviews, and you have a few Silicon Valley startup offers in-hand. The offers have a bunch of numbers and you’re not sure how to put them all together. You’re bombarded by terms like ISOs and NSOs and vesting period and cliff and strike price and fair market value that you don’t really understand, but owning 0.1% of the company sounds great in theory, so you go to sign on the…

Tools for Sanity in Isolation

This is what sanity looks like, I swear I live alone at the moment, and the start of quarantine, was… rocky. Here’s a jewel of an entry from my journal, from March 13: Fuck, this week has been bad. But, I think I’m kind of getting the hang of this. Here’s an entry from March 29: I’m in a surprisingly good mood right now. I kind of have a headache, but aside from that I feel pretty good. Mood…

The Pit, the Cabin, and the Dance Floor

Okay, Jamie, you’re in the pit again. It’s far from your first stay here, but let’s not get too comfortable. There’s a distinct lack of roses here to stop and smell. Mostly just thorns. I know it’s not easy. Your body is lead. Your mind is in a slow, murky swirl. Your emotional energy level is at about a 3%. Let’s go through your move list and take stock. Move #277: Reach out to a close friend to…

Feel those feels

I’m 27 now, and have been in two long term relationships for the better part of the last decade. In the grand scheme of a life, this isn’t much, but it’s been enough for my perspectives on conflict to evolve. For the bulk of this relationship history, I thought that it was unambiguously good to wait until the fires of emotion had settled in order to have a calm, collected discussion about whatever…

A letter to my 18 year old self

This is an open letter I wrote to myself in 2014 after completing my undergraduate degree in Software Engineering from the University of Waterloo. It’s addressed to my 2009 self, to be read just before starting university. Now in 2018, I’m surprised how much of this still holds and is still needed advice for me. April 25, 2014 Hey you, It’s me: you. I made it. I have my iron ring 1 . I…

speedscope - Interactive Flamegraph Explorer

An edited version of this post was written for Mozilla Hacks: Cross-language Performance Profile Exploration with speedscope . For the past 9 months, I’ve been working on speedscope: a fast, interactive, web-based viewer for large performance profiles. You can use it live at www.speedscope.app , and read the code on GitHub at jlfwong/speedscope . It’s inspired by the performance panel of…

Figma, faster 🏎

Reverse Engineering Instruments’ File Format

Have you ever wondered how applications store their data? Plenty of file formats like MP3 and JPG are standardized and well documented, but what about custom, proprietary file formats? What do you do when you want to extract data that you know is in a file somewhere , and there are no APIs to extract it? Over the last few months, I’ve been building a performance visualization tool called…

Color: From Hexcodes to Eyeballs

This post is also available in Russian: Цвет: от шестнадцатеричных кодов до глаза , and Japanese: 色:ヘキサコードから眼球まで . Why do we perceive background-color: #9B51E0 as this particular purple? This is one of those questions where I thought I’d known the answer for a long time, but as I inspected my understanding, I realized there were pretty significant gaps. Through an exploration of electromagnetic…

Depression & Recovery

This is going to be a long post, so here’s the TL;DR that I want you to take away. I started experiencing my first bout of major depressive disorder in 2016, and am recovering now with the aide of meditation and 75mg daily of an anti-depressant called Zoloft (aka Sertraline). Talk therapy, medication, and meditation have all been important parts of my ongoing recovery. I’d love to talk to you if…

Simulating the Physical World

Move your mouse left and right to control the wind. This post is also available in Russian: Симуляция физического мира . How might you go about simulating rain? Or any physical process over time, for that matter? In a simulation, whether it be rain, the airflow over a plane wing, or a slinky slinking down some stairs, we can frame the entire simulation with two pieces of information: What is the…

Bezier Curves from the Ground Up

This post is also available in Japanese: 一から学ぶベジェ曲線 . How do you describe a straight line segment? We might think about a line segment in terms of its endpoints. Let’s call those endpoints \( P_0 \) and \( P_1 \). P 0 P 1 To define the line segment rigorously, we might say “the set of all points along the line through \( P_0 \) and \( P_1 \) which lie between \( P_0 \) and \( P_1…

Delete and Heal for Vector Networks

Bending the Dynamic vs Static Language Tradeoff

Here are some things I think people want out of a programming language. Iteration Speed : A sub-second edit-run cycle Correctness Checking : A compiler that can tell me that my code is probably wrong without me having to run every single codepath Concise syntax : Express intent fluidly without a lot of boilerplate Editing support : Autocompletion, go to definition, go to usage, refactoring support…

Fluid Simulation (with WebGL demo)

Click and drag to change the fluid flow. Double click to reset. Note: The demos in this post rely on WebGL features that might not be implemented in mobile browsers. About a year and a half ago, I had a passing interest in trying to figure out how to make a fluid simulation. At the time, it felt just a bit out of my reach, requiring knowledge of shaders, vector calculus, and numerical computation…

Ray Marching and Signed Distance Functions

I’ve always been fascinated by demoscenes: short, real-time generated audiovisual demos, usually in very, very small executables. This one, by an artist named “reptile”, comes from a 4KB compiled executable. No external assets (images, sound clips, etc.) are used – it’s all in that 4KB. To get a intuitive grip on how small 4KB is, a 1080p video that this produces is…

The Monoculture and Me

Photo credit Katie Dowd Note from Dec, 2019: This is a piece I wrote in 2016 while between jobs, originally posted as a note on Facebook. There’s a pretty bitter tone underlying this. I don’t feel quite the same way any more, but it was a pretty honest representation of how I felt in 2016. I’m on the Caltrain back to Mountain View following a Friday night karaoke session. I hear a guy…