No matter how silly @nasimtaleb is in his understanding of science and statistics, some of his takes are ok. Reading "the great thinking models" which spares me from reading his ramblings. His #antifragility is basically what #erlang is all about and what I mention in my #uptight #elixir talk: https://youtu.be/uTF2sUJKR3o
#elixir #Uptight #erlang #antifragility
@derekkraan funny, i made a vc-based author library which is very easy to set up to use instead of monstrosities like #keycloak. I wouldn't mind getting cash from people asking me to develop it beyond what it is for my use case. Same with #uptight, which, I feel is closing a huge gap in #elixir reliability.
But I don't want to forsake hex.pm. Neither do I care about "infra outages". Libraries are called like this because they just are, full of functions, as opposed to applications.
Even though I fixed semantic mess of #elixirlang by publishing the #uptight library https://github.com/doma-engineering/uptight, I still need to interact with non-tightly-typed code sometimes.
Sometimes, just unwrapping isn't enough or isn't ergonomic, so then I have to go back to operating with raw binaries.
While typing those, as anyone should, I feel bad when I write `binary` and I also feel bad when I write `String.t()`. Again, as anyone should.
After thinking about this issue for so long, I finally understood that in #elixir, both of those types should be called `uninterpreted_binary()` or `blob()`. I know it will never happen, but `String.t()` has to be deprecated.
The reason not to use `binary()` type in Elixir is clear. When binaries are *interpreted* as Strings, there's a whole lot of semantics going on, and this interpretation is way more pushed than in #erlang. But it still happens at interpretation time, it has nothing to do with the type of an term presented. This is the reason not to use `String.t()`. So yeah, the most correct way to put it is `blob()`: an uninterpreted raw binary, that is, however, easily and automatically gets interpreted as strings.
As a matter of fact, `String.t()` may just be the Elixir's hundred thousand dollar mistake.
#erlang #elixir #Uptight #elixirlang
New video where I showcase #gittemporal, an amazing tool for digital archeology.
It's slow-paced, but I show what I'm doing, and how I'm working around slight bugs of the tool.
I also put it to a practical use while working on #uptight, one of many. Enjoy!