Interesting Links for Week 5 of 2024

A Basic USB-C Primer

https://hackaday.com/2024/01/30/a-basic-usb-c-primer/

Hackaday posted a USB C primer that goes into the details of how this complicated port works.

Karrot

https://karrot.world/

Karrot is a community organizing platform. It is open source and uses the MIT license. It provides a platform for local groups to coordinate face-to-face activities. It is also designed for democratic decision-making.

It looks like a great platform for groups running food shares, tool libraries, or other Library Socialist efforts.

I was made aware of the software on Mastodon. Someone was talking about improving the ability to self-host Karrot. It will be exciting to see that aspect improve.

Embassy on ESP: Getting Started

https://apollolabsblog.hashnode.dev/embassy-on-esp-getting-started

This looks like a good series on using the Embassy framework with ESPC3 boards. A coworker of mine gave me a pile of ESP boards that I've been looking for an excuse to use. Perhaps I'll finally get around to building that Rust powered keyboard that has been simmering on the back burner for years.

The pest and pest_derive crates

http://pest.rs/

This year, I attempted to complete The Advent of Code using Guile. The input data is supplied as some form of text file that needs parsing. The parsing is the least interesting part of the problem. I found that Guile has built in support for parsing expression grammars (or PEG) in the Guile standard library.

I find authoring a parser in PEG to be much nicer that using something like a regular expression. Regexp has been lambasted as being a write-only language, which is a valid critique. PEG, on the other hand, proved to be very easy to read.

I had a good experience writing grammars using PEG, that when I came across the pest crate, I made note of it. I have used the nom crate for parsing a binary protocol at work. That was a lovely experience. I'm excited to find an excuse to try out Pest.

Documenting Actix services with OpenAPI 3.0

https://medium.com/netwo/documenting-api-for-actix-web-b575adb841a1

This article introduced me to Apistos. Apistos is a crate for generating Open API 3.0 specs from Actix Web services.