Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
When you program a drum machine, you’re encoding a binary state (play or don’t play) for each drum (kick, snare, hi-hat, etc) at each time step.
-
Overloads are a powerful tool for defining precise types in a Python package with polymorphic functions.
-
I’ve been working on upgrading the tech stack for a deep-learning research project that I’m involved in, moving the Docker devcontainer from Python 3.8 (which reached end-of-life over a year ago) and Tensorflow 2.13.0 (similarly dated) to Python 3.11 and…
-
A few years back, I explored some common terrain algorithms like slope, aspect, and hillshading by implementing them from scratch in Python.
-
I recently stumbled onto a blog post by Aldo Cortesi about using space-filling curves to visualize the structure of bytes within a binary file.
-
Google recently released the AlphaEarth Foundations annual Satellite Embeddings dataset, a 64-dimensional vector representation of Earth’s surface that incorporates spectral reflectance, radar backscatter, climate, and topography in an analysis-ready form…
-
I wrote a recent blog post about hacking together a crude version of Git hooks in the Jujutsu VCS.
-
My day job involves a lot of time spent looking at NAIP aerial imagery of burned forests.
-
I have a digital photo frame running on a Raspberry Pi hooked up to a small TV, and want an easy way to control playback.
-
I spent a few hours this weekend trying out the Jujutsu version-control system and I never want to use git again. jj manages to strip out the sharp edges of version control – progress-killing merge conflicts, manual rebases, and mazes of subcommands – wit…
-
If you’ve lived in the US – especially an area prone to extreme weather – you’re probably uncomfortably familiar with this sound: Your browser does not support the audio element.
-
scikit-learn’s support for deep learning is pretty limited, but it does offer just enough functionality to build a usable autoencoder.
-
I’m working on a project1 that requires splitting a large raster into a few thousand overlapping chunks and iteratively processing and accumulating each result into an output raster.
-
Solar Bitflip Sort is a joke sorting algorithm that relies on cosmic particles colliding with transistors in a memory node to randomly flip an array of bits into a miraculously sorted arrangement.
-
I’ve been dabbling with Rust lately and looking for a good learning project to help ground some theory in practice.
-
eerepr is a Python package I wrote that generates HTML reprs for Earth Engine objects, converting JSON data to trees that can be navigated in a Jupyter notebook.
-
The MNIST dataset of hand-written digits is ubiquitous in image classification, the de facto “hello world” of 2D CNNs.
-
I’m sick of blog posts written by LLMs.
-
The randomVisualizer method in Earth Engine assigns randomized colors to unique values in an image, providing a quick shortcut to visualize classified pixels without manually creating a color palette.
-
I’m building a domain-specific language called Arpeggio that compiles code into songs.
-
I have an idea.
-
I recently needed to export an image from Earth Engine to overlay with a local GeoTIFF.
-
A few months back I posted my experiments deploying serverless Earth Engine functions using infrastructure-as-code with Pulumi.
-
UPDATE: It looks like the bug that prevented connecting to mapped network drives is fixed as of NordVPN 7.39.1.0, and this workaround now causes issues with VPN connections.
-
Vacuum tubes are an expensive, inefficient, and unreliable relic of early 1900s technology.
-
I was recently introduced to the idea of a parity drive, a specially reserved hard drive in a data server array that can be used to recover data when another drive fails.
-
Using evaluate with a callback function is the standard way to handle potential server-side errors in the Earth Engine JS API, e.g. parsing a date: ee.Date("2012").evaluate(function(result, err) { err ?
-
Some UI elements in Earth Engine (labels and buttons) support image icons, but the feature has some quirks that aren’t well-documented.
-
Running Earth Engine code as a serverless function is normally a multi-step process that involves manually creating a service account through the web UI, downloading a credential file to zip with your code, and enabling and configuring a handful of APIs.
-
I’m building a domain-specific language called Arpeggio that compiles1 code into songs.
-
BigQuery, a cloud platform for storing and analyzing big tabular datasets, was added as an export option in Earth Engine last year, and I’ve been looking for an excuse to test it out ever since.
-
I encountered an interesting challenge while building a Lark parser for my domain-specific language, which I thought was worth a quick write-up.
-
I’m building a domain-specific language called Arpeggio that compiles code into music.
-
I’ve tinkered with parsers for a few small side projects like building a language server and parsing blog post metadata, but I wanted to tackle a bigger parsing project.
-
In an effort to simplify and speed up my blog, I’m migrating from my custom-made NextJS SPA to Hugo, which means reformatting the frontmatter header of every blog post from this: --- title: My Blog Post category: Blog tags: blog, post, blog-post date: "20…
-
Say you’re writing a typed Python package with a function head that takes a generic tuple and returns the first element.
-
As far as computers are concerned, images and audio are fundamentally just arrays of numbers: signals changing over time (audio) or space (imagery).
-
With summer winding down in the northern hemisphere and days getting shorter faster, I started wondering: How far would I need to travel today to get the same length of daylight tomorrow?
-
Before AI assistants, modern IDEs, syntax highlighting, and version control, software was written by making holes in pieces of paper called punched cards.
-
Dask is a Python package that allows you to easily parallelize data analysis, whether you’re working with arrays, dataframes, or pretty much any other data format.
-
Area isn’t everything.
-
There are two ways to download image data from Earth Engine–exporting to Drive or downloading from URL.
-
My first attempts at programming were writing hacky embedded C++ to run Arduino microcontrollers, brute forcing my way through compiler errors to try to make LEDs blink and motors spin.
-
I recently built Conway’s Game of Life in Earth Engine.
-
There are plenty of tools to calculate slope, aspect, and hillshading from elevation data, but if you’ve ever been curious about how they’re calculated, this post goes through the process of implementing those algorithms from scratch in Python using just…
-
Cellular automata are a type of computer program that can create complex, emergent behavior by applying simple rules to determine the state of cells on a grid over time.
-
In a recent blog post, I found that shrinking an Earth Engine module’s size by 75% had almost no effect on import speed in the Code Editor because most of the time was spent waiting for Earth Engine to find it, not downloading its contents.
-
In this post, we’ll go into the weeds on the Earth Engine module importing system to answer the question, does minifying source code speed up imports?
-
Ever wanted to use the power of distributed Earth Engine processing to make 16-bit multispectral imagery from a $130 million satellite platform look like it was taken by a 1989 Game Boy camera?