It's also concerningly prescient, as he often has been, especially in an early scenario in the book that shapes the world so the rest of the book can happen.
2,293 karma · joined March 20, 2018
It's also concerningly prescient, as he often has been, especially in an early scenario in the book that shapes the world so the rest of the book can happen.
That said, this is a relatively tame tack-on to a very meaty post, not worth harping on unless the project itself has similar issues.
My shoulders are pretty wide for my frame. When using most laptop keyboards and many standard keyboards, I have to tuck my shoulders in and twist my wrists. This was causing some serious pain and tension in my neck, shoulders, and wrists, likely leading toward carpal tunnel.
I made two different changes in succession that helped greatly (and I don't remember the order now):
1. With a split keyboard, the halves could be placed so my wrists are straight and my arms hold at shoulder-width, and this rapidly reduced the amount of tension I was experiencing and gradually eased my wrist issues. Tenting the keyboard and getting a vertical mouse helped as well, but I'd rate those as minor improvements, especially since I aim not to drive with the mouse as much.
2. With Colemak layout, I was able to gradually transition from QWERTY (there's a series of AHK scripts I found at the time that basically rotated triples of keys). This helped reduce wrist strain at the hand level.
There's certain forms like that that have well known values that they converge to as you continue adding terms into infinity. Sometimes that convergence is only possible if your domain is limited, eg. [0,1].
Reducing reasoning beings to the level of AI is an affront to—and demonstrates a genuine lack of understanding of—the nature of organisms and reason itself, and the nature of AI and its capabilites.
It is better to have representations of reality that you can then discuss and grapple with honestly, than to try to distort representations - such as AI - to make them fit some desired reality and then pressure others to conform their perception to your projected fantasy.
Representations don't create reality, and trying to use representations in that way only causes people to go literally insane, and to divide along lines of who accepts and who rejects your fantasy representation.
So, for example, if you try and remove any racial bias from AI, you are going to end up crushing the AI's ability to represent reality according to a variety of other real factors: income, judicial outcomes, health risks, etc. Your desired reality makes the actual tool worthless, except to confirm one group's own intended fantasy world as they envision it. The problem doesn't get dealt with, it just becomes impossible to think about or discuss.
So instead of dealing with real problems, you hope you can simply prevent people from thinking thoughts that cause those problems by wrapping them in a bubble that deflects those thoughts before they happen. This is magical, wizardry thinking: treating words as if they create reality, instead of merely describing it. And it will break, eventually, and in a very ugly way: people dividing along lines of their perception of reality, even more than they already do.
After all, what benefit is this article if it is simply one machine communicating to another?
This seems incomplete, using the wrong definition of 'competition' to try and make a clever point. Competition does not necessarily grant permanent 'winners' or 'losers', unless the 'game' is forcibly ended for good. Infinitely repeated games are very different in nature from singleton games, and the number and nature of the players involved are also not fixed.
As for startup time - the latency isn't that important and would be an order of magnitude less than the ZIP construction, so the JVM warmup delay is actually just fine. The cost will be slightly higher, but it's not an operation I expect to run with high regularity - it's only on-demand for a reasonably small userbase.
As for complexity - which I am able to weigh due to the above constraints - Java's streams are not only simpler in design, but vastly more stable, and far more straightforward to glue together, and with highly stable implementations of ZIP stream wrappers and output-input pipes. A couple of additional stream wrappers for chunking into multipart upload segments and forwarding streams (introduced in JVM 9 when I'm on 8), and I was ready to go.
All that to say: don't create universal rules, though I agree that all of what you mention are good rules of thumb for certain. My given constraints work just fine with Java, here.
I was able to rewrite and deploy the function in Kotlin in two days' time. It was easy to set up and run, and worked literally first compile and run - a benefit of static types.
Now, would I recommend it to anyone who is unfamiliar with the JVM ecosystem? That's a harder sell. But the stability of the ecosystem and a modern set of saner tools and libraries have made it much better to work in; I'd even call it pleasant.
Elsewhere in this same thread, someone was assuming the sociological cause for Spanglish, instead of the more organic linguistic cause that happens anywhere you have two cultures and languages in close contact. I suspect this blurred definition makes talking about this more complicated now, since sociological code-switching has become part of America's racialized sociology discussion.
If I had my druthers I'd split those two very different phenomena into separate terms, because they don't even produce the same kinds of linguistic patterns.
(Thanks for asking me to justify, my assumption was quite wrong regarding the scope of the term.)