Talks
A Rusty Geospatial Adventure (OmniOpenCon 2025)
A Rusty Geospatial Adventure (OmniOpenCon 2025)
This post is going to be about a question that recently came up in the GDAL Matrix room . A user had a discrete heat map of noise levels in their town as a PDF, and wanted to extract some usable information out of it. Let's see if we can help them. Looking at the data If you want to play along, you can download the file from here . Pick the first one , with Lzsn in its name. It's a 42 MB…
One cloud provider I sometimes work with has a large repository of images, accessible using the S3 protocol or over an NFS gateway. Today I spent a bit of time debugging an issue related to the NFS gateway, so read on for more — and for a twist at the end. Something is broken I have a workload which involves relatively many of those images at once, accessed through the s3fs FUSE helper (a way to…
If you're using Firefox (and you should), you might have wanted to read its session restore files, perhaps to recover some lost tabs, re-import an old session after a refresh, or even track your tab hoarding habit. Unfortunately, last time I checked, there wasn't much information available about the session restore format. I've previously used lz4json to decode them, but it's a…
I recently wanted to prepare a Jupyter notebook with some example code and ran into an interesting problem: trying to display a Matplotlib chart made the IPython kernel crash. Gathering more info Luckily, the crash was easy to reproduce outside of Jupyter: $ python3 -c ' import matplotlib.pyplot as plt; plt.axes() ' Illegal instruction This usually means one of two things: some compilers /…
Alex
I recently got interested in running Rust code on my router (stay tuned for a future blog post?). This is supposed to be easy, but I never tried it, so let's see how it goes. A test project Hello, world s are somewhat boring, so I'd like to build something more realistic — a DNS client. We're not going to implement DNS here, but rather piggy-back on the trust-dns-resolver crate,…
False color composite of Sentinel-1 stack from the end of May 2021 around the Saloum River in Senegal. VH (cross-polarization) backscatter, VV (co-polarization) backscatter and VV coherence, contrast-stretched and mapped to RGB. Data courtesy of the European Space Agency. Click the image for a larger (23 MB) version.
This is a short post prompted by a question on /r/rust from May 2019, asking about a way for a Rust program to modify itself. Think of how much fun it would be to store a high score list directly inside the a executable. When you make a copy (on floppy disk, to make things more realistic) and pass it to your friends, your high scores are persisted. Errata the variable should probably be…
Last week , we looked at the data from my smartwatch app and how to snap it to the OpenStreetMap roads. If you haven't already, consider reading that post before moving on. This time, we'll be writing some code in the Rust programming language. Keep in mind that this isn't exactly production-grade code, but rather something you would normally write in Python in one afternoon.…
This is a quick post announcing the sd-notify crate. sd-notify is a Rust library for interacting with systemd or a compatible service manager. If you're not running Linux or you don't like systemd , this crate is not for you. systemd in 3 minutes Assuming you are running systemd , at some point you might find yourself with a program you want to automatically run on start-up.…
Hoping to be more active during the pandemic, I bought a Withings smart watch, and at some point got the idea of playing with the GPS tracks recorded when using it. The manufacturer allows you to download your data by logging in to their web dashboard, going to settings, and choosing "Download my data". In 10 minutes or so, you will get a ZIP archive in your inbox. The Withings data I like to take…
This is a couple of years too late, but I want to write a quick post announcing my first crate, co2mon . It's a small library for reading data from Holtek and similar CO₂ USB monitors. These are relatively popular, because the protocol was reverse-engineered and it's easy to communicate with them. Linux prerequisites If you're on Linux, you will need permissions to access the device…
This year I decided to jot down some thoughts for the Rust 2020 call for blog posts . The major caveat here is that I'm just a language enthusiast. I'm not using Rust professionally, and my skill in using the language is somewhat mediocre. We are a pretty diverse bunch, and other people and teams will have different wishes and expectations. I think the general theme here will be…
Site created with the Zola static site generator. Theme based on Hyde .
A couple of days ago I landed my second pull request in the Rust Programming Language repository . This is the story of how that went. This post is inspired by other posts about improving the Rust compiler. TL;DR: I made a 20 lines PR to the Rust standard library. If you're so inclined, you should try doing the same. The chase after unsafe code There's been quite a bit of noise recently…