RSSAmplifier

Blog

(untitled)

blog.dend.roRSS feed ↗16 posts

Latest posts

Talks

A Rusty Geospatial Adventure (OmniOpenCon 2025)

Recovering information from a PDF map

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…

About a fun little NFS bug

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…

Decoding Firefox session store data

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…

Debugging a mysterious Python crash

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 /…

Blogroll

Alex

Building Rust code for my OpenWrt Wi-Fi router

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,…

Some eye candy

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.

On self-modifying executables in Rust

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…

Mapping my walks with OSRM and Rust

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.…

Announcing the sd-notify crate

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.…

Map matching using OSRM

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…

Announcing the co2mon crate

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…

My Rust 2020 wish list: playing nice

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…

Acknowledgements

Site created with the Zola static site generator. Theme based on Hyde .

Rust and the Case of the Redundant Comparison

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…