678 karma · joined November 1, 2020
frogulis.net
On the other hand, soooo many of the tool uses it asks permission for are custom commands to replace functionality I should be able to trust once instead. e.g. instead of having a trustable Find tool, or using its already-trusted Read tool, it often will run `find` or `grep` or `cat` with a series of pipes and substitutions or `-exec` args, requiring me to give permission every time for basic, safe operations.
The (increasingly active) conspiracy theorist inside of me says it's precisely designed to do that, to give me "permission fatigue", so I turn on auto mode and give myself over to the machine spirit :)
The short version is: the shape of a type is inherent to the type itself, but the optionality of its members is dependent on the situation. A type system that solves this problem separates these concepts to allow for this distinction.
I _suspect_ it's possible to implement something like that in typescript but I haven't tried it myself (and I doubt it's very ergonomic).
We easily form the intuition of the client being a by-default untrusted entity, and checking whether it has the privilege of accessing this data, where the server is the arbiter of that access.
CORS is so inherently different to that, and while the information is easily available, it requires a short but careful read to grok the idea -- which a dev tunnel-visioning towards getting their application code written may not wish to slow down for.
I tried emulating it a few years before that when I didn't have any workable screen for my PS2 and that was not so good. A game that pushed the original hardware to its limit also pushed the emulator past its limit. Might be better with more powerful hardware than mine?
However, I've heard the remake is perfectly good, and surely easier to play with modern PC hardware!
Can you go into that a little more? Do you have specific examples that make you sad?
The first example that comes to my mind is the show Community, which I really enjoy, and which doesn't make me sad at all.
P.S. an article I linked to in my original response was https://www.filfre.net/2025/01/the-crpg-renaissance-part-1-f... which I mentioned as it talks about a historical standout in the genre but puts it in the context of the copycats and the schlock. It's now irrelevant to my comment, but I'd like to link to it anyway.
Oh? Why is that?
Tangential, but that reminds of the Haskell "hoogle" tool which allows searching for functions _by type_ across a large database of libraries, even by abstract types. So you might wonder "hmm what's that function that has a type structure like `t a -> (a -> t b) -> t b`?" and it'll happily tell you that it's monad `bind`
At least, I'm hoping that's what they meant. If they really meant horizontal and vertical in the way they used it then I've got no idea either.
The format made for good lunchtime reading -- the care you put into making it easily readable shows. Are the illustrations actually hand-drawn? Looking forward to the next part(s) that you hinted at!
We've also recently absorbed a vanilla(-ish) JS codebase largely developed by one dev which provides a point of comparison.
Angular has plenty of boilerplate and idiosyncrasy, but it being opinionated and "pattern-y" has advantages when you want devs who infrequently touch it to be able to jump in and make changes with some level of consistency.
Additionally -- and this is anecdotal, but I suspect it's a common part of working with a plain JS codebase -- tracking the flow of data through the Angular application is usually soooo much more straightforward, even when it involves navigating through many layers and files. The Angular codebase only has N types of things, and they tend to relate to each other in the same ways, and they're often quite explicit (such as explicitly defined component element names in HTML templates). In contrast the JS app has whatever it has built up with very few constraints keeping it consistent. Obviously that could be improved with discipline and structure, but reducing that requirement is one of the things a framework gets you.
I can't comment too much on React as my one experience working in a proper React codebase was in a team who were largely as clueless as me :)
Adam Something has a video responding to it that's worth watching too: https://www.youtube.com/watch?v=oafm733nI6U
Comparing to the experience of being a passenger on a bike in Saigon, the level of cooperation there is way higher, possibly due to a sort of necessity. I had this feeling while observing traffic there, that, while the latency and throughput of the roads during high traffic times are still kinda awful, at least for bikes there's a slow continuous progress that simply wouldn't exist without cooperation.
Funnily enough, my experience driving in Los Angeles was distinctly not terrible. Traffic was usually good enough to drive in, though there was very little regard for the speed limit on the freeways! I suspect I may have just been lucky to miss the worst of the traffic.