Becoming a better dev
Table of Contents
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 bestgrep
for years, butgrep
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
- Rust's
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 maps
,iterators
,collecting
Chore list
I want to
- clean up my homepage
- parallelize my
MCTS Ramsey
project
todo!;
todo!;
todo!; /* almost there! */
todo!; /* so fun! */
todo!;
todo!; /* I saw the g6 libraries! maybe use them! */
todo!;
todo!;
retool for a neural network
- with the new architecture, we abandon the action queue
- sign the count matrix to indicate edges
- offset so that edges are nonzero
f16
with cudarc
community tools
cudarc
for Rust GPU-accelerated (split-)seed serach- markdown guides instead of pdf
- simpler tool for resetting save files
- better ergonomics & lowering the barrier to (re)entry
- regex tool for tabulating submitted run data
- auto seed searching (the dream)