What software development means to me
I'm a competent mathematical problem-solver, but what does that mean for software development? This week I've been exploring
- agile simplified: do what is valuable, make a working product quickly without interruption, trash it if necessary, and collaborate
- use right tools for the job? prioritize working code over methodologies and documentation (though Rust does the latter so well by default)
ripgrep has been the best
grep for years, but
grep is best for projects with mixed encodings
- CI/CD is actually pretty easy (this site is also on a pipeline!)
- only commit working code that is better than the previous version
- monads: I'm finally enjoying category theory!
- this means your type system has some consistency and structure that you probably want desperately
Enum handles this beautifully, I'll explain more later
- I'll get around to Haskell eventually 😇
- There is no happy/sad path, only valid and invalid states
Box, Rc, Arc are alien at first, but so is anything novel
- constexpr is overrated and a bit messy: is the design is wrong?
- is Circle the savior of C++?
- static analysis will not save us. That's your compiler's job
- side-effects: your function signature should tell the whole story
- but this is not enough!
- when you want to multithread, your functions should minimize side-effects
- when you want to maintain,
mut is the correct default
I want to
- clean up my homepage
- parallelize my
MCTS Ramsey project
todo!("thread-local argmax graph");
todo!("n_(a,g) -> n_ag");
todo!("open pictures in UI");
todo!("do I have enough g6 tests?");
todo!("on-the-fly tikz with wsl?!");
todo!("optimize the guess graph");