Blog
Filter by topic: Algorithms 12 ·
Ansible 1 ·
Arpeggio 4 ·
Audio 8 ·
Benchmarking 2 ·
Cellular automata 2 ·
Computer vision 1 ·
Deep learning 4 ·
Earth engine 17 ·
Fv1 1 ·
Geospatial 9 ·
Google cloud 3 ·
Gpu 1 ·
Hardware 3 ·
Javascript 8 ·
Jj 2 ·
Music 7 ·
Neural amp modeler 1 ·
Programming languages 6 ·
Python 29 ·
Pytorch 1 ·
Redis 1 ·
Rust 3 ·
Taichi 1 ·
Tensorflow 1 ·
Til 9 ·
Typing 2 ·
- Hexadecimal Drum LoopsAn interactive experiment in using hex strings to encode drum sequencer state.
- A Deep-ish Dive Into Python OverloadsFiguring out best practices for writing well-typed function overloads through trial-and-error.
- TIL: Migrating Keras 2 Models to Keras 3Automating the migration of ~80 .keras models from Tensorflow 2.13.0 to 2.16.2.
- Terrain Algorithms on the GPU with TaichiWriting CUDA kernels to calculate slope, aspect, and hillshading in Python.
- Visualizing Encoded GeoTIFFs with Space-Filling CurvesUsing Hilbert space-filling curves to visualize the effects of block sizes, interleaving, and compression on GeoTIFF file structure.
- Efficiently Exporting AlphaEarth Embeddings from GEEYou can maximize storage efficiency by losslessly quantizing the 64-bit satellite embeddings to just 8-bits.
- TIL: Configuring jj fix with RuffMy configuration for linting and formatting Python projects with Jujutsu.
- Measuring Dead Trees from Aerial PhotosA quick experiment measuring snag heights in burned forests with computer vision.
- Controlling a Raspberry Pi over IRUsing a TV remote to control a browser using LIRC, irexec, and xdotool, automated with Ansible.
- Automating Pre-Push Checks with JujutsuFake Git hooks in jj using pre-commit and aliases.
- Invoking Existential Dread with NumpyImplementing the frequency-shift keying algorithm used by the US Emergency Alert System to encode digital data in audio.
- Building Autoencoders with Scikit-LearnHow to hack a multi-layer perceptron into a fully-featured autoencoder.
- TIL: Fast Array Accumulation in XarrayBenchmarking different methods to accumulate a large array from chunks using Xarray.
- TIL: How Fast is Solar Bitflip Sort?Using simulations to estimate the sorting speed of cosmic radiation.
- Simulating Digital Circuits in RustAssembling a 4-bit 'computer' from scratch by simulating bits, relays, logic gates, latches, registers, and adders.
- Optimizing Long List Labeling in eereprGenerating reprs 20% faster by predicting stringified list lengths.
- Classifying MNIST as 1D SignalsUsing polar aggregation and 1D CNNs to classify handwritten digits the (unnecessarily) hard way.
- Procedural Blog Posts with Markov ChainsImplementing a cutting edge text generation algorithm from 1980s Usenet.
- Reverse-Engineering Earth Engine's Random VisualizerRecreating a closed-source procedural color generation function through trial and error.
- Building Arpeggio Pt. 4: The Parser & InterpreterTurning code into notes.
- Paleo MODISUsing machine learning to simulate a 22,000 year old satellite image.
- TIL: Exporting a GEE Image Using Rasterio TransformsTranslating affine transforms to Earth Engine export parameters.
- Earth Engine + Cloud Run + RedisSpeeding up serverless Earth Engine functions with Redis caching.
- TIL: Whitelisting a Local Subnet with NordVPNA hacky fix for NordVPN disconnecting shared drives on a local network in Windows.
- Replacing My Guitar Amp with a Neural NetTraining a WaveNet CNN to simulate a vintage tube amp with Neural Amp Modeler.
- Exploring Parity in PythonTesting out a fault tolerant storage algorithm with code.
- TIL: Promises in Earth EngineYou can handle async callbacks using promises (but you probably shouldn't).
- TIL: Using Icons in Earth EngineLoad icons from GStatic or data URLs.
- Deploying Earth Engine Cloud Functions using IaCUsing infrastructure-as-code to reproducibly deploy Earth Engine apps as serverless functions.
- Building Arpeggio Pt. 3: The EngineBuilding a Python backend for music generation.
- Summarizing 51 Years of Landsat DataI analyzed 11 million Landsat scenes to test out the new Earth Engine - BigQuery interface.
- TIL: Handling Rule Lists in LarkHandle ambiguity in the grammar, not the parser.
- Building Arpeggio Pt. 2: Music Theory for ProgrammersTurning notes into code.
- Building Arpeggio Pt. 1: Language DesignPlanning a domain-specific language that compiles to music.
- Writing a Parser for Blog PostsUsing grammar to reformat my blog posts.
- Type Safety and Non-Empty Tuples in PythonTaking inspiration from Haskell to write better code with fewer bugs in Python.
- Introducing AudioJPEGBuilding the worst audio compression algorithm.
- Chasing SummerHow far would you need to travel every day to experience the same number of daylight hours year-round?
- Python on Punched CardsWrite Python like it's 1959 by encoding it onto IBM 1401 punched cards.
- Parallelizing Earth Engine feature collections with DaskDownload and process Earth Engine vector data in parallel with Dask.
- Patch Metrics in Earth EngineImplementing common patch metrics from Fragstats, cloud-native style.
- What's the Fastest Way to Download an Earth Engine Image?How do urllib, requests, and fsspec compare for download time when grabbing an image from Earth Engine? Let's run some benchmarking to figure out.
- Guitars, Microchips, and AssemblyWitness the descent of a Python programmer into the depths of low-level digital signal processing and embedded assembly.
- Cellular FloodLet's simulate sea level rise with cellular automata in Earth Engine.
- Terrain Algorithms from ScratchSlope, aspect, and hillshading are ubiquitous in spatial analysis, but how are they made? Let's implement them from scratch in Python to figure out.
- Cellular Automata in Earth EngineConway's Game of Life is cool. Earth Engine is cool. What if we put them together?
- Optimizing Module Structure in Earth EngineNested file structures are great for organization and terrible for import speed in Earth Engine modules. Let's figure out why and what we can do about it.
- Should You Minify Your Earth Engine Modules?Websites minify code to make pages load faster, so can we speed up Earth Engine imports by minifying our modules?
- Dithering in Earth EngineDithering is an image processing technique used in retro video games to simulate shading with a single color. Let's apply it to Landsat imagery in Earth Engine.