Yesterday I wrote about a way to memorize a random 256-bit encryption key. This isn't trivial, but it's doable using memory techniques. There's a much easier way to create a memorable encryption key: start with something memorable, then apply a hash function. Why not just do that? There are two conflicting criteria to satisfy: cryptographic
All implementations of mutable state in a geographically distributed system are either slow (require coordination when updating data) or weird (provide weak consistency only). Sebastian Burckhardt,…
In the Trenches of Broadband Policy: 2023 Year In Review
EFF has long advocated for affordable, accessible, future-proof internet access for all. Nearly 80% of Americans already consider internet access to be as essential as water and electricity, so as our work, health services, education, entertainment, social lives, etc. increasingly have an online...
Mozilla 2023 Annual Report: CEO pay skyrockets, while Firefox Marketshare nosedives: Earlier this year, Mozilla laid out their vision for the future of their organization -- and it did not include Firefox. The focus for the future of Mozilla -- according to Mozilla -- is primarily based around Artificial Intelligence services. In fact, Mozilla leadership stated, quite plainly, that they ...
Why large companies and fast-moving startups are banning merge commits
As a developer creating pull requests in a git repo, you almost certainly use one of two distinct workflows for integrating changes from one branch into another: merging or rebasing. There are three key points in the development process where you need to do this:
The Uncommon Advantage from Training in Unpopular Programming Languages
At Stack Builders, our mission is to push the boundaries of the software industry through quality, pragmatic solutions that bring to life our clients' vision. One of the ways that we invest in our team to ensure alignment with this mission is to have all of our full-time engineers complete an approximately 50-hour training course in the Haskell language early in their career at Stack Builders.
I’m lucky to have two hands, let’s be clear, and the minor struggles I’ve had with them over the years don’t qualify as any kind of real hardship. Yet there have been a lot …
What Is a WebAssembly Component? The Ultimate Guide
A WebAssembly component plays a critical role in how runtimes that run inside WebAssembly modules are deployed. But its standardization is still being worked out.
10 Things Software Developers Should Learn about Learning
Understanding how human memory and learning works, the differences between beginners and experts, and practical steps developers can take to improve their learning, training, and recruitment.
Rise of Rust: Is It the Future of System-level Programming?
Rust Revolution: Exploring its ascendancy as the future of system-level Programming - Unveiling the capabilities and impact of the rising language in software development.
Last week I bought a Christmas tree. It’s not the tallest, nor the bushiest, the tip is kinda crooked, but it gets the work done. While carrying my new acquisition through the snowy streets, the comforting smell of freshly cut pine reminded me of how much I like trees, specially git worktrees.
'Merchants of Complexity': Why 37Signals Abandoned the Cloud
Provisioning a fleet of servers in 30 minutes is magic, but it is not a requirement that comes up that often for most businesses, David Heinemeier Hansson argues.