A typical DRM system simply refuses to work if validation fails. A smart DRM system slowly introduces bugs. Much harder to test cracks.
miniblog.
Related Posts
Watching https://youtu.be/KWB-gDVuy_I and I'm struck by how weird constructors are as an API.
* They promote total functions, making it hard to do validation.
* They're hard to split up, because they have special access to unfinished data.
* They're like a framework: you get called.
Porting my 2016 Rust project from getopts to clap, and it's amazing how far the ecosystem has come.
clap gives me a nicer help, automatic value validation, and can even generate completions for shells!
First screenshot is getopts, second is clap.

