468 karma · joined January 24, 2020
On that note, I have ADHD, and very little 'brain-RAM', and really lack the ability to memorize things or recall what I've memorized. The only consistent way I've found to 'memorize' things is to deep-learn them, to the point where I can infer all the answers from prior knowledge, and draw new conclusions from existing conclusions, pretty much all the way down. I can't just brute-force-memorize the conclusions themselves. Every step inbetween has to make sense. It's like memorizing the square series as individual numbers, 1, 4, 9, 16, etc. (something I cannot do) vs memorizing the formula x^2 and being able to calculate the resulting numbers when needed (something I can do).
Note that many recording artists do not actually make that choice; it happens further up the chain. Regardless, whether or not a singer or producer uses a particular effect on their voice does not distinguish between the vocals being 'real' or not. If you simply don't like the way it sounds, on the level of artistic taste, well, you can make that judgement for yourself, but, to claim it's more profound than that is just pure pretense.
Also, why are we talking about autotuned vocals on a thread about a speech synthesizer? Claims of 'real vocals' are already out the window at that point.
As far as the iconic characters go, they're moving to an entirely different engine (Piapro NT) anyways, so I wonder how future works created using them will sound.
impl TryFrom<&T> for U
instead of impl Into<Result<U, E>> for &T
Why make a separate trait? And why make the blanket impl from-based rather than into-based?An example from today is in Elden Ring - largely a single player game, but with multiplayer elements. When I started playing, there was a huge variety in player stats, weapon/armor selection, and people were even encouraged to try out different things by the in-game "rebirthing" mechanic. Then someone found out that a single sword used a specific way vastly overpowers everything else, especially in multiplayer, and now everybody who plays player-versus-player is locked in to using that same sword or else it's not even a fair fight. Players have been begging the developers to change this, and they only recently (as of this week) did something about it.
I wonder how the popular understanding of these processes will evolve as more and more is discovered and understood.
So what we consider a discrete photon particle with a location (x,y) would actually not be an individual particle and would be more like:
electromagnetic_field[y][x] = "excited"
in a big (presumably infinite) grid.It seems that trying to build a hypermedia API in the spirit of hypermedia precludes someone actually designing an app with any particularity (themes, layouts, pages, certain requests/responses being valid/invalid, etc.), since it must be so general, the only client application that could qualify is the web browser itself - able to render any HTML document without actually knowing about the document semantically. Because having prior semantic knowledge of the API violates REST. Assuming that, are the 'apps' and APIs one would design then just hypermedia documents? Sounds like web 1.0. Not necessarily a bad thing, really, but REST seems too specific to be meaningful outside of websites, either that or I'm not imaginative enough.
I'm not sure what a 'hypermedia API' looks like that isn't just a web page or a functional equivalent thereof. It seems that either the WWW is the REST reference implementation or REST is simply the architecture of the WWW codified.
I have no idea why nobody uses bookmarks and everybody keeps hundreds of tabs open. When did that start? Who even has the RAM for that? How do you even click on them when they’re that tiny? So many things just don’t make sense.
Anecdotes, I know, but I was terrible at math compared to the kids in high school who could all just memorize and regurgitate (I have ADHD & very poor working memory, and no random-access). These kids also regularly looked up answers to future quizzes they found online and bsed their way through. But, in college, which involves a more abstract and rigorous (and dare I say meaningful) understanding of the material, I excelled while many of my former colleagues fell behind as these were 'new problems' they couldn't just look up because they didn't have answers.
My point is intelligence is not a scalar axis in which some people are 'gifted' and some people are not, it's a multidimensional series of mental configurations that must be adapted to in the classroom and outside. Hire better teachers and pay them more is the only concrete thing I can think of. Gifted programs aren't the way as they're entirely arbitrary to a specific environment. The wrong teacher for the right student will ultimately make the student worse for it, and these programs don't account for how truly uninspired some teachers can be. Not to mention parents, or availability of learning materials, quality of libraries, etc etc.
Also the form of the sprites changed significantly, it was a massive shift in artistic personality and aesthetic direction that the tutorial just called it “not using straight lines”. I think they could have made their point while not swapping in a different set of tastes entirely.
The problem is that most indie games render at 2x or 3x or more natively.
In my personal opinion, 4.2 is like, halfway to 4.3
But sometimes it's more comfortable to go none of the way than half of the way, hence me targeting 4.0 in my most recent library.
IMHO Rust's lifetime analysis should consider borrows only at the point of dereference, not just whenever you encounter an & symbol. They already do that with raw pointers - you can have as many pointers as you want but you only need to mark `unsafe` if you actually dereference one. So at least someone on the team knows how to make that work functionally.
So in 3.3-4.1 land, you get to do the exact same things you’d do in 4.3 land, but in more tedious ways programmatically, because the drivers and implementations decide how elegant you are able to make your code and abstractions. The commands that end up on the GPU are the exact same regardless but the developer experience is highly variable.
My point is GL versions do not delineate features nor performance enhancements past a certain point, they delineate periods of programmer happiness. It is solely up to the drivers, not the hardware, not the actual machinery, to determine this metric. GL, being a standard rather than an implementation, suffers for this. I happily await webgpu finalization.
What I'm saying is that fundamentally, a human livelihood has an upfront cost and that's the cost it takes to keep a human alive. I'm not talking about what work you as a hypothetical manager end up making this hypothetical person do, or how good at it they hypothetically are, I'm talking about living human beings as they are, baseline, whether or not you consider their labor valuable or potentially valuable.
The rest of your argument hinges on this misunderstanding, willful or otherwise. You've torn apart nothing but your own strawmen. Pragmatically, I'm not even sure minimum wage is the right choice to rectify this indignity, other options range from nothing to UBI to free housing programs to guaranteed jobs to communism. I'm not commenting on which one is best, I'm commenting on the moral framework from which these ideas come from.
Companies are the only entities we allow to just take, setting their own prices, without quarrel, because laborers don't have bargaining power when selling their labor. Hell, the interview process should be proof enough of that. Oppositionally, I believe in human dignity - I think a worker should be able to bargain. Frankly, since us regular people can't just go up to the store and say "well, I don't wanna pay full price for this item, so I'll just pay less for it - what're you gonna do about it anyway?" (we'd get arrested) I don't think a company should be able to either. When you frame it in terms of an open market, the current labor situation sounds obviously and patently absurd.
I guess the common criticism is "it doesn't scale" but it seemed perfectly fine for me and my needs, and countless others, right up until every major rails project on github was "last updated: 2014". Feels like the rug was pulled out from under our feet. An exodus without cause, an ark without a flood.
C++ I find can get a little unwieldy quite fast, but is generally easier to keep simple. It maps to higher-level concepts in easy and intuitive ways. Rust, I hate to say it, but unless you know best practices / idiomatic Rust from the start, you'll have to do a lot of refactoring as you learn the language. Some constructs simply aren't possible using safe Rust. Many embrace the limitations, many else frustrate themselves again and again until 'the Rust way' drills into their heads. But, of course, once you get a feel for it, it's pleasant to write in.
How much difficulty you'll have with Rust or C++ depends on what problems you try to solve, and what your approach to programming is generally. If you're more of a pragmatic "I write simple programs that actually do things" I don't think you'll have any problems with Rust. It's very straightforward. And the tooling is second-to-none. If you like to partake in exploratory programming, trying out different theoretical models and different abstractions, C++ caters to that by allowing you to write more elegant designs than in Rust, with the downside that it also lets you make worse mistakes.
The wider cross-language library ecosystem is mostly C-based I've found, so, in C++ you can just use those libraries directly with no hassle (the only hassle being the build system, or lack thereof). Rust can use those libraries as well (as long as you don't have a gut-reaction "ew" to using `unsafe` everywhere) but unfortunately the safe and idiomatic Rust library ecosystem is kind of on the bleeding edge at the moment. Hopefully things will stable out soon, and all these hip new technologies will come to fruition, but that day is not today.
I know this isn't really nudging in one way or another but really it comes down to what you value in a language and what projects you want to see through using these technologies that will determine which one you like better. Have fun!
On the other hand, if NULL is not an expected value, then how often do you really find the logic error at the same spot that the panic occurred? Not very often in my experience. We have callstacks for a reason. You usually find the NullPointerException at the bottom of the stacktrace or the None.panic() after 100-something other function calls in significantly complex codebases. No, if a function expects a value 100% of the time, and it was passed a NULL value, that's the caller's problem. And Option<T> won't help you if the user-facing calling code is still passing None or std::nullopt for whatever misguided or erroneous reason they may be doing so.
Certainly I agree there're benefits to encoding this kind of behaviour into the type system, but I don't agree that it's ultimately a solution to the '4 billion dollar mistake', since mistakes ultimately still happen. You just swap NULL for None and you still have a bug in your logic, just no longer a bug in the types. It's kicking the can.
Of course you can always run dwm on linux with a hodgepodge of makeshift utility apps, write your own keybinds to set your brightness and volume and other such inanities, but in order to get a 'complete' desktop experience you kinda have to opt-in to GNOME/KDE which are trying to do the same things as Apple or Microsoft, aesthetically speaking. And tough luck if you actually use Apple or Microsoft to begin with. I tried running bug.n and it seems to not work in win10, let alone win11.
The best evidence this article can come up with is equally polemic articles and a hand-picked troupe of social media teens. Selection bias at its finest.
Is this as tiring for anyone else as it is for me?
Note the top comments saying the same things about homosexuality and transgenderism, of course.
I'm gonna be blunt: This is the worst thing to come out of the Rust community, bar none. Rust is a fine language and I love to write in it, but I loathe the way Rust developers have convinced themselves that Rust is an axiomatically 'better' language and that the things you can't do in Rust, or the things that are painful to do in Rust, are a perfect circle venn-diagram overlap with the things that are just bad to do in general. It's a mindset that shuts down discussion and constantly shifts goalposts. It doesn't help anyone.