🦜 dystroy|Canop / blog
@dystroy.org.blog@rss-parrot.net
I'm an automated parrot! I relay a website's RSS feed to the Fediverse. Every time a new post appears in the feed, I toot about it. Follow me to get all new posts in your Mastodon timeline!
Brought to you by the RSS Parrot.
---
Your feed and you don't want it here? Just
e-mail the birb.
Fearless Embedded Rust: A FPV Lego car
https://dystroy.org/blog/picamobile/
Published: July 14, 2026 00:00
In the previous article I built a wireless car, with Lego servo and Lego motor, powered by a Lego power pack.
The code, both the embedded one and the backend one, was in Rust.
Now, I'll make it FPV with an arducam, still controlled in Rust, and still Lego…
Fearless Embedded Rust: Driving a Lego Car with a Pico W
https://dystroy.org/blog/picomobile/
Published: June 12, 2026 00:00
If you already have the parts of a common Lego car, it's very cheap and easy enough to make it remotely controlled from your computer with a Rust program running on a Raspberry Pico.
It's also a good opportunity to dive into safe embedded programming with…
Revealing the frontier with stacks and queues
https://dystroy.org/blog/stack-and-queues/
Published: June 2, 2026 00:00
Being able to think in stacks and queues is a neglected super-power.
It's often a better way to see problems than recursion when trees and other graphs are involved.
Box to save memory
https://dystroy.org/blog/box-to-save-memory/
Published: April 23, 2026 00:00
I saved 475 MB out of the 895 MB used by a real-world Rust program by changing the layout of some structs and the way I was deserializing JSON files.
ddoc
https://dystroy.org/blog/ddoc/
Published: December 10, 2025 00:00
I moved the documentation of my free programs from MkDocs to ddoc.
Here's why.
Search with broot - the good moves
https://dystroy.org/blog/search-with-broot-the-good-moves/
Published: November 24, 2025 00:00
This article is both for people who don't know broot yet, and for those who do but are probably less efficient at searching than they could be.
Practical Pedantism
https://dystroy.org/blog/practical-pedantism/
Published: October 13, 2025 00:00
What if you could actually use all those pedantic lint warnings without drowning ?
A better tree command
https://dystroy.org/blog/a-better-tree/
Published: September 2, 2025 00:00
You certainly know the old tree command.
Or maybe you don't, because it's not installed by default anymore on new distributions.
Why ? It never kept the promise of an overview of the current directory.
Rust macros for scenario tests
https://dystroy.org/blog/test-macros-as-a-dsl/
Published: August 31, 2025 00:00
I present here a macro supported approach for tests in Rust.
Cancelable background tasks in Rust
https://dystroy.org/blog/cancelable-background-task/
Published: January 26, 2025 00:00
When a task isn't instant, you usually don't want to run it on the UI thread.
I present here a simple enough framework to run tasks in background.
Biome + Bacon
https://dystroy.org/blog/biome-bacon/
Published: January 22, 2025 00:00
Biome is a fast linter.
Bacon is a background code checker.
They're the perfect team to check, fix, and improve your JavaScript / TypeScript / CSS.
Bacon for everything - a roadmap
https://dystroy.org/blog/bacon-everything-roadmap/
Published: November 8, 2024 00:00
You want to use bacon on non rust projects?
So do I.
String oriented serialization in Rust with Serde
https://dystroy.org/blog/string-oriented-serialization/
Published: October 13, 2024 00:00
Serde's derive is fantastic but if you want humans to read and write files, you can't just depend on the standard derive for everything.
Having your values be written as simple strings is often more convenient.
Why broot doesn't enter zip archives
https://dystroy.org/blog/why-broot-doesnt-enter-zip/
Published: July 8, 2024 00:00
Broot lets you navigate your filesystem and gives you an overview of any directory.
It does it by trimming folders in a balanced way, clearly outlining the structure of the tree.
Navigating zip archives looks like a natural extension, doesn't it ?
Why sort code? How to do it?
https://dystroy.org/blog/sort-code/
Published: April 2, 2024 00:00
Your code is full of lists. And some of them should be sorted.
From Terminator To Wezterm
https://dystroy.org/blog/from-terminator-to-wezterm/
Published: November 17, 2023 00:00
This post doesn't compare Terminator and Wezterm. This is the help I would have loved to find when starting to try Wezterm coming from Terminator.
A Kind Introduction
https://dystroy.org/blog/a-kind-introduction/
Published: November 15, 2023 00:00
How to leverage the Rust compiler to prevent identifier misuse ?
How to go from ec2ba151-7acf-43a9-bb98-6f5331992f42 in your database to "Cust_ec2ba151-7acf-43a9-bb98-6f5331992f42" in your REST/JSON API ?
How to do it at zero runtime cost, with no…
Thinking in trees and lines, formatting Rust
https://dystroy.org/blog/fmt-rust-trees-lines/
Published: September 29, 2023 00:00
I see my code projects in trees and lines, and it affects how I want it to be formatted.
How to store secrets
https://dystroy.org/blog/secret-storage/
Published: June 6, 2023 00:00
My requirements and solution for a safe storage of personal secrets.
Contributing to my FOSS projects
https://dystroy.org/blog/contributing/
Published: June 2, 2023 00:00
As I maintain several FOSS projects, I figured it would be convenient to have in a central place some concise guidance on contributing.
Manage keybindings in a Rust terminal application
https://dystroy.org/blog/keybindings/
Published: July 28, 2022 00:00
To deal with key events in your cross-platform TUI, you'll probably need to
determine what keybindings you can really use,
use convenient hardcoded keybindings,
and read keybindings from a configuration file
Adjust your application for a light or dark terminal
https://dystroy.org/blog/terminal-light/
Published: July 16, 2022 00:00
So you want your unix application to select different sets of colors depending on whether the terminal is set to a light or dark theme ?
Here's an how-to. It's first targeted at Rust programmers but each step can be ported to other languages.
How not to learn Rust
https://dystroy.org/blog/how-not-to-learn-rust/
Published: December 15, 2021 00:00
I've seen too many good programmers struggle learning Rust, or even give up.
Here are the mistakes I've seen which may make you fail at learning Rust.
I hope this list will help you avoid them.
Reclaim space on disk
https://dystroy.org/blog/reclaim-space-on-disk/
Published: November 2, 2021 00:00
As my disks tend to be quite messy with time, I had to devise ways to reclaim space, which means both spotting big directories and files, and to deal with the thousands of duplicates you can't delete one per one.
Here's my toolbox for cleaning my disks on…
Proper conversion from XLS to PDF in Java
https://dystroy.org/blog/excel-to-pdf-java/
Published: June 30, 2021 00:00
Generating or modifying Excel files in Java is easy with Apache POI.
But when you generate Excel reports, you always end up having to export them in PDF too.
If you look for a library for this conversion, you'll find many ones, most of them expensive, and…
A SQL database and an interactive grapher in a single HTML file
https://dystroy.org/blog/sql-in-html/
Published: May 4, 2021 00:00
Glassbench is a Rust micro-benchmark harness. It uses a SQLite database to store bench measurements.
I wanted to give it the option to open an interactive data viewer and grapher, with ability to search the history.
An usual web based solution for that is…
Why broot switched to Hjson for its configuration files
https://dystroy.org/blog/hjson-in-broot/
Published: December 22, 2020 00:00
TOML was originally the only format for configuring broot.
Here I explain why Hjson is now the preferred one.
Why TUI applications ?
https://dystroy.org/blog/terminal-appeal/
Published: November 22, 2020 00:00
Twenty years ago, most of us thought TUI applications were going to disappear.
TUI were just a vestige of low capabilities computers.
There was no reason for TUI not to die with the rise of the personal computer.
This didn't happen. We still love to use…
Broot 1.0
https://dystroy.org/blog/broot-1-0/
Published: September 2, 2020 00:00
8 months ago, but it feels like years ago, somebody shared a link to broot on Hacker News. There was some very kind messages and broot gained a few users. But I had more in my TODO list.
A lot was done since.
At first sight, broot didn't change much:
It…
For better prompts
https://dystroy.org/blog/prompts/
Published: July 29, 2020 00:00
Prompts I see everywhere are very bad in my opinion.
They're sometimes fancy, full of bling which amazes coworkers, but usability nightmares.
Broot content search
https://dystroy.org/blog/broot-c-search/
Published: July 26, 2020 00:00
An example of an efficient search workflow based on broot, a general purpose file manager.
Use broot and meld to diff before commit
https://dystroy.org/blog/gg/
Published: July 5, 2020 00:00
Before every commit, I do a short review of what I wrote.
And usually there are a few last things to fix.
whoami
https://dystroy.org/blog/whoami/
Published: July 4, 2020 00:00