GeistHaus
log in · sign up

GitHub - kaaveland/advent-of-code-rs: Solving advent of code

github.com

Solving advent of code. Contribute to kaaveland/advent-of-code-rs development by creating an account on GitHub.

2 pages link to this URL
Constraint propagation: Mutual recursion for fun and profit

I’ve been wanting to write this post for a while, about what I think is an elegant way to solve some constraint satisfaction problems. Constraints tend to come up fairly often in real world programs, and some times it can be effective to treat them as constraint satisfaction problems. This post has a bit of background on constraint satisfaction problems I’ve encountered recently, then it goes over to develop Rust code for an algorithm that we can easily use to solve some Advent of Code problems, and we use it to make a solver for sudoku puzzles. Along the way, we explain the syntax we use, it shouldn’t be too hard to understand for someone who is unfamiliar with the language.

0 inbound links article en posts rustadvent of codealgorithms
Projects

I have a few projects on my GitHub that I sometimes work on: eugene is a postgres SQL migration checker, sort of like shellcheck but for database migration scripts. It can parse SQL, or trace the effects of the scripts in a database and report about things that could lead to outages in production. It has a fancy documentation site here. pyarrowfs-adlgen2 is a connector between Apache Arrow and Azure Data Lake Gen2. It’s good for reading and writing files in storage accounts with hierarchial namespace support over the network, and it’s pretty fast compared to alternatives like fsspec/adlfs advent-of-code-rs are my Advent of Code solutions in Rust. I’ve finished many of the seasons and I try to make the solutions run fast. kollektivkart is map visualization of where public transit in Norway gets delayed. The source code is available at github. thumper is a CLI tool for deploying static assets to BunnyCDN. I use it to deploy this site, and a few others.

0 inbound links article en