@@ 24,7 24,7 @@ I'm not upset, though!
By trying a lot of dead-ends, I got to understand the problem space more deeply.
For example, I learned that:
- Chess positions cannot be represented in a fixed-size struct of less than 36 bytes (and that is a *maybe*)
- Chess positions cannot be represented in a fixed-size struct of less than ~29 bytes[^1] (and that is a *maybe*)
- Rust's HashMap implementation is based on a hashmap created at Google ([video](https://www.youtube.com/watch?app=desktop&v=ncHmEUmJZf4) explaining how it works)
- [Data-oriented design](https://vimeo.com/649009599) gives many practical benefits in structuring data to reduce overhead, such as storing a struct of lists instead of a list of structs
- 64-bit hashes can handle a *lot* of elements (4 billion-ish?) before you expect to see your first collision
@@ 47,3 47,7 @@ If you're interested in **being an alpha user** or **helping with the queries an
I'm excited to see what I learn via this project for the rest of my batch, and where it goes after that!
See you all next week!
[^1]: This blog post used to say that it couldn't be less than 36 bytes. I think that *might* be true if you use 1 byte per piece and then bit-pack the rest of the information, but a fellow Recurser and I worked out that it can indeed be smaller. Right now speculatively we think it can get down to 29 bytes, but I'm not about to write an implementation to prove it.