I’ve been at a few software organizations navigating the transition from small company to established businesses with big customers. At that point, duplication starts to become a cost, and consistency and stability in the product becomes more important than earlier in the business cycle. This is when everything starts getting “platformized” and standardized: application platforms, app development frameworks, managed job queues, data pipelines. These all have the chance to be transformative for your company from a dev experience and cost control perspective. They also routinely get mired in endless migration timelines, and never being “ready enough” for big systems to transition to the platforms.
Our Furtive Encrypted Future
By 2030, real encryption may be illegal in the European Union. Heck, Spain wants to ban end-to-end encryption entirely It’s already under attack in the UK. Be sure that the USA and China will be nipping at their heels.
Because mathematics are mathematics, there’s not actual safe way to provide lawful government access to encrypted communications. If the government has a key, at some point the key will leak. The shared keys for DVD CSS and AACS leaked. Any shared keys for decrypting content eventually leak, and there’s no sound way to update content to disable those private keys.
American schools should all have uniforms
I love fashion as a means of self-expression. Getting creative with pieces found in thrift stores and flea markets was a big part of my 20s. I’ve been thinking a lot recently about fashion in a school context and its effects on children.
My daughters are in their early years of school. Even in preschool here in Singapore, kids wear a school uniform. It’s usually simple - a polo shirt and shorts, with embroidered school logos. Everybody buys them from the same uniform supplier, and you buy a PE uniform too. State schools, international schools, religious schools. They all have uniforms. My daughters have very different tastes in their own wardrobes, but at school they’re essentially equal.
Loog Piano: My review
A late, buggy dud
I bought two of the original Loog guitars, little 3-string acoustic guitars intended for new learners and especially children. There’s a lot to like about them: they’re inexpensive, cute, and have surprisingly good sound and volume. The larger one gives a tenor guitar sort of sound that’s pleasant, and the smaller one is ukulele-ish. The kids are getting old enough to be into them, and I love having them around.
What’s a “thunk”?
An archaic old name for an old concept
I remember when everyone started talking about using “thunks” in Redux to execute code without blocking the UI. And I remember getting tripped up on the word “thunk”. What’s a “thunk”? Why are we calling it that?
The term “thunk” goes all the way back to ALGOL 60! It’s a play on “think”, because the ALGOL compiler needed to “think” about what sort of subroutines to generate. ALGOL allows passing expressions as arguments to subroutines, not just constants. One way of allowing this is to substitute the expression for another subroutine that evaluates the expression when the original subroutine call happens. This new subroutine is the “thunk” - the result of the “thinking”.
jq -n --argjson
A tip for using jq with more than one input
jq
, a tool for manipulating JSON data, is one of the Don’t use mocks
Writing good unit tests is made much easier by dependency injection. This lets you separate your code’s behavior from that of your dependencies.
Many people use mocks to add dependencies to unit tests. I think this is usually a mistake.
Supreme Court DoS attack
Just Buy All the Lawyers
Looking in Go’s Mirror: How and When to use reflect
This article was originally published on gopheradvent.com
reflect
can be intimidating to new Go programmers because it’s very generic and you lose access to many niceties in the language. But it doesn’t have to be. Let’s build some programs that use reflect
as a way to demystify the package and illustrate the power and pitfalls that come with using it.
What is software for?
it ain't all good
In the last blog, I wrote a few things that software is for:
- putting people on the moon
- safely deploying airbags
- making my bank account add up
…