Studio
Writing
Creating & Thinking
- Cultural Wisdom
- Appropriate Quality
- Creative Reading
- Use Examples
- Deeply Knowing
- Creative Friction
- Paralysis
Design
- Misclicking Live Search
- Who Has Been Speaking?
- The Power of Lists
- Force Click for Layer Selection
- Fixing Mobile Page Layouts
- Don't Justify Web Text
Health
Programming
- Building an ECS in TypeScript
- What is an ECS?
- Why build an ECS? Why TypeScript?
- A TypesScript ECS in 99 Lines of Code
- Tests
- Deeper Dive: Entities
- Deeper Dive: Components
- Dirty Component Optimization
- Aspects
- Deeper Dive: Systems
- Sparking Joy with Python
Projects
FallgateSoftware
My helper scripts, configs, and instructions for setting up new environments.
I think dotfiles (named because they often start with a dot, like .bashrc
) are a fun window into someone’s work environment. (And probably a time capsule of when they started working with unix-esque systems.) My favorite trick is to name custom scripts starting with a comma.
A simple Desktop-only app for calorie counting and meal planning.
I wrote this to use it myself. You can read much more about it in my post on Calorie Counting × Meal Planning.
A tiny tool to find git repositories on your computer and tell you if any are dirty or unpushed.
I wrote this to use it myself. Over time, it’s also expanded to check other directories on your computer for any files that aren’t expected, and offer to delete them. These two functionalities are part of an effort to have things backed up at all times, so a hard drive failing is no big deal.
My helper functions for python.
I add this tiny library as a dependency to all my projects. It contains little functions I kept writing over and over. There’s very little here—probably a positive testament to Python—but I like the idea of having a personal helper library so much I couldn’t resist including it.
You might also be interested in checking out my research software.
Sketches
Blog
Basque Country Córdoba, Porto v2 Nerja, Granada Seville and Málaga Porto: Port, Park, Cobblestone Collection, Cat Lisbon, and the Tiny Woes of a Generic Europe Washington, D.C. Rewrites and replants Hot The Distant Rumble of Change Smaller PostsGarage
The garage is a new experiment in "working with the garage door up." I develop inter-linked micro notes that evolve over time. They're written for me but posted publicly here. Read more in What is the garage? The following is an index of all the current entires in the garage.
- Animating SVGs from Sketch with anime.js
- Benefits of creating prototypes that fail
- Bézier basics
- Causes and conditions
- City maps with prettymaps
- Creation and virality
- Critiquing Internet use
- Cube confusion
- Deciding and following
- Deeper ideas in pocket
- Does k-means on an image's colors make a good palette?
- Generative voxel world editor
- Home base feeling
- Learning to vox
- Mandelbrot
- Notes on fragment shaders and p5.js
- Omitting negative results precludes thinking in reverse
- Personal infrastructure graveyard
- Pixi.js graphics stress test
- Reducing creative friction: starting a new project
- Shader stress test
- Simulation: Basic street
- Spirit of discovery
- Stupid things I do constantly in Python
- Summer 2021 website goals
- Teachers are responsible for multiple perspectives
- Tension between discovery and intentional creation
- Thinking in reverse
- Tiny naming woes
- Video game graveyard
- Ways of looking
- Website graveyard
- What is the garage?
- Working blocks
- Working process