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 powered.
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 a reasonably advanced project, assuming you're already familiar with the Rust language.
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.
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.
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 is a fast linter. Bacon is a background code checker. They're the perfect team to check, fix, and improve your JavaScript / TypeScript / CSS.
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.
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 ?
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.
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 boilerplate, with a derive macro ?
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
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.
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.
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 linux in 3 major steps: Confirm the problem with dysk Spot and delete big files and directories with broot Delete thousands of…
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 none of them giving acceptable results. I explain here the efficient and reliable enough solution I've used in a Java application.
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 to run a simple web server. But Glassbench is executed by cargo and immediately quits and I didn't want it to leave behind anything to…
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 TUI applications. Why can be kind of mysterious.
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 looks the same and what could be done then can still be done the same way, 500 commits and 60 releases later.
Here's a short map of my main identities (the ones which are related to software making, at least): dystroy is the umbrella covering all the me, and the brand of my freelance activity Canop is an open-source software writer Denys Séguret writes Rust for fun and profit, mainly on the backend. You'll get news from me and my software on Mastodon ( @dystroy@mastodon.dystroy.org ) and the…