The US has the highest real incarceration per capita on the planet except Seychelles, mostly for nonviolent crimes that were instituted (War on Drugs) by Nixon to attack the poor, minorities and other “opponents.” Also consider the number of for-profit prisons and the prison industrial complex that runs transportation, staffing and internal services for the public prisons.
It’s also worth carefully re-reading the text of the 13th amendment. The giant slavery loophole is as-intended. The Union lost the Civil War while it got to declare “Mission Accomplished” because Abraham Lincoln sold-out civil society. Slavery continues as corporations profit by exploiting cheap labor paid on average under $1/hour. Systematic disenfranchisement is profitable.
Almost. That construction is still vulnerable to chosen input attacks without inner and outer padding, which is basically rediscovering HMAC, which also isn’t suitable for storing passwords. Don’t roll your own crypto if you don’t know what you’re doing. Use a PBKDF like argon2, scrypt, bcrypt or PBKDF2 as they are intended because they are far, far stronger than hashing a couple of times.
I always shake my head when performance is touted for new functions/constructions. It’s more important to minimize the costs of legitimate use while maximizing the costs of software and hardware attacks. Minimizing the former inevitably leads to minimization of the latter in brute force (cloud cluster, ASIC, FPGA, etc.) attacks. The fundamental impetuses of scrypt (a PBKDF rather than an unauthenticated hash function) was a righteous and necessary advance that must never be forgotten with each fashionable iteration of newness that seems to lose sight of how faster or newer isn’t always automatically better.
The whole modality of a single package in a single configuration at a single version is broken and dead dependency-hell of yesteryear. Still, ports and packages collections mechanically and unthinkingly continue this failed and broken modality of wasted effort. Packaging multiple versions and multiple configurations side-by-side similar to Habitat (hab) and Nix independent is the only way to go. This approach supersedes vendored dependencies because it allows garbage collection and sharing of identical dependencies rather than duplicating them. Furthermore, it allows real choices without an either-or and real real flexibility that single recipes that always attempt to track a rolling version can never possibly achieve.
Also broken is maintaining multiple packages that package multiple versions of the same package with combinations of external, frequently changing platform packages like rubygems that are packaged manually. Multiple versions of the same package should share common recipe declarations as much possible and be managed more cleanly. Native extensions should be built automatically in CI/CD using polling or notifications rather than manual methods that too often lead to outdated, vulnerable dependencies and create too much pointless, repetitious busywork.
It’s also worth carefully re-reading the text of the 13th amendment. The giant slavery loophole is as-intended. The Union lost the Civil War while it got to declare “Mission Accomplished” because Abraham Lincoln sold-out civil society. Slavery continues as corporations profit by exploiting cheap labor paid on average under $1/hour. Systematic disenfranchisement is profitable.