1,017 karma · joined September 4, 2020
You don't need a library implementation of fold (which can be used to implement map/flatmap/etc). Instead, it can be inlined as a tail recursive function (trf). This is better, in my opinion, because there is no function call indirection and the trf will have a name which is more clear than fold, reducing the need for inline comments or inference on the part of the programmer.
I also am not a fan of a globally shared Result class. Ideally, a language has lightweight support for defining sum/union types and pattern matching on them. With Result, you are limited to one happy path and one error path. For many problems, there are multiple successful outputs or multiple failure modes and using Result forces unnecessary nesting which bloats both the code for unpacking and the runtime objects.
The io interface looks like OO but violates the Liskov substitution principle. For me, this does not solve the function color problem, but instead hides it. Every function with an IO interface cannot be reasoned about locally because of unexpected interactions with the io parameter input. This is particularly nasty when IO objects are shared across library boundaries. I now need to understand how the library internally manages io if I share that object with my internal code. Code that worked in one context may surprisingly not work in another context. As a library author, how do I handle an io object that doesn't behave as I expect?
Trying to solve this problem at the language level fundamentally feels like a mistake to me because you can't anticipate in advance all of the potential use cases for something as broad as io. That's not to say that this direction shouldn't be explored, but if it were my project, I would separate this into another package that I would not call standard.
There is violence in every ideology. To deny this is to deny reality. Singling out one group as uniquely prone to violence is both uncivil and dangerous in my view. That does not mean that one cannot point out the shadow side, but one should look in the mirror of one's one preferred ideology, whether that is christianity, atheism, scientism, nationalism, rationalism, etc., before casting blanket aspersions at others.
I have reached a point in my life in which I recognize that I do not generally appreciate direct advice, especially not the unsolicited variety. Even the bits that I agree with in this piece are tainted by the many cases where I did the exact opposite of what he advises and excelled academically.
Lua also has operational advantages compared to javascript. You can build it from source in at most a few seconds and run it anywhere that has a c compiler. The startup time is negligible even compared to a compiled c program so you can run entire scripts that do very useful things faster than most js engines can print hello world. There is also the benefit that in spite of what this article discusses, it is possible for most problems to write a lua solution that works for all lua >= 5.1. This is wonderful because it means if I stick to the standard library, the bitrot is essentially zero.
Calling into c is very straightforward in Lua, especially with luajit, which makes it superior to js as a scripting language (the node ffi api is quite painful in my experience and ffi runs against the js execution model).
Lua also essentially got lexical scoping of local variables correct from the beginning while js blessed us with the nightmare of var.
Of course Lua is far from perfect, but while there are some similarities, the differences are quite significant and meaningful.
Truly horrifying stuff.
> These people haven't suffered from the fact that mass production of media is cheap, they've benefited from it.
Maybe? This really depends on your value system. Every moment that you are focused on how you look on camera and trying to optimize an extractive algorithm is a moment you aren't focused on creating the best music that you can in that moment. If the goal is maximizing profit to ensure survival, perhaps they are thriving. Put another way, if these people were free to create music in any context, would they choose content creation on social media? I know I wouldn't, but I also am sympathetic to the economic imperatives.
Physical books can be totemic symbols of learning. Just having them around is a reminder of what you've learned, or what you've been putting off if they remain unread.
Physical books are also wonderful gifts that digital can never replicate. A wise old man once gave me a book that he cherished and had been given to him in commemoration of his contribution to its production (it was a very important book). Every one of the hundreds of pages was filled with many of his annotations. Whenever I read from it, I am connected to him and his study. What would be the equivalent for digital? Giving someone a used phone?
I will also mention I experienced periods of absolutely crushing boredom at times during the summer when I did not have friends or parents around and had nothing to do but watch daytime television. But I learned from the boredom. It is sad to me that so many today are instead being fed from the drip of constant personalized entertainment that makes it harder to get to the place of complete boredom that ultimately can spark creativity instead of succumbing to learned helplessness.
Personally, music is sacred for me so making money is not a part of my process. I am not worried about job loss. But I am worried about the cultural malaise that emerges from the natural passivity of industrial scale consumerism.
Do you regularly play with other people? That is a good way to disabuse yourself of the notion that all that matters is technique.
About 20 years ago, I was riding my bike everywhere and hardly walking. I went on a trip to NYC and was walking 10+ miles a day. I developed severe shooting pains in my feet. Getting some supports helped dramatically and so I started wearing them whenever I wore shoes.
I did this for about 15 years and completely swore by arch supporting shoes. Then, one day I was playing basketball and landed on someone's foot going for a layup. My foot basically folded in half in the opposite direction of the arch. This was a major injury and I could not walk at all for a week and it took multiple years before I stopped feeling pain regularly in that foot.
After the injury, I completely stopped wearing arch supports. I had a theory that my feet had been weakened by using them and that this weakness was the underlying reason for the severity of my injury. For the last few years, I have averaged about eight miles of walking a day and mostly wear zero drop minimal shoes. I have developed the ability to run on concrete with them, though I do not particularly enjoy this (primarily because my running efficiency is poor).
If I were running a marathon, I would certainly wear shoes with padding, but I don't find much padding or support necessary or even desirable for brisk walking for hours at a time. And for almost 15 years, I never left the house without bulky supports.
These types of comp packages also seem designed to create a kind of indentured servitude for the researchers. Instead of forming their own rival companies that might actually compete with facebook, facebook is trying to foreclose that possibility. The researchers get the money, but they are also giving up autonomy. Personally, no amount of money would induce me to work for Zuckerberg.