My bad, that’s on me, it looks like the C++ libraries I found use either templates or boost’s reflection. There might be a way to do it with macros/metaprogramming but I’m not good enough at C/C++ to know.
I’m learning rust and C at the same time and was mixing up rust’s features with C’s. Rust’s answer to reflection is largely compile-time macros/attributes and I mistakenly assumed C’s attributes worked similarly since they have the same name.
See my other comment for more detials but it kind of destroys the type safety of the language. In Java for example, it lets you modify private/protected fields and call private/protected methods.
It’s also slower than accessing a field normally since you need to do a string lookup (but slightly faster than a hashmap/dictionary) so if you use it over a large enough list it’ll cause slowdowns.
Most use cases for it in Java/C# revolve around testing, serialization, and dynamic filtering/sorting. And most of those cases can be handled more safely using macros/attributes (EDIT: and templates as well, though those are also pretty painful to deal with) because that gets handled at compile-time in C/C++.
It’s pretty cool when you use it right but it’s also really easy to shoot yourself in the foot with, even by C++ standards. For example, in other languages (I’m coming from Java/C# which both have it) it lets you access private/protected fields and methods when you normally wouldn’t be able to.
There’s also a noticeable performance penalty over large lists because you’re searching for the field with a string instead of directly accessing it.
For the times it is necessary (usually serialization-adjacent or dynamic filtering/sorting in a table) to use reflection, it’s faster at runtime than converting an object to a dictionary/hashmap. However, 99% of time it’s a bad call.
There’s a pretty big difference though. To my understanding enable_if happens at compile time, while reflection typically happens at runtime. Using the latter would cause a pretty big performance impact over a (large) list of data.
The dev who owned the branding for forge (LexManos) is infamously abrasive and rude to others to the point where the forge community was slowly falling apart because new people didn’t want to be involved with him. The rest of the team decided to rebrand to NeoForge and continue without him.
That’s definitely true but at the same time why do people have to cause fights in the first place, they’re all part of a community for a game they enjoy playing :(
I also agree with you on the sodium license change, it’s definitely the most reasonable of the ones I listed since the dev seemed to be getting maintainer burn-out and had some bad experiences with other people in the MC modding community. I don’t really like the idea of it not being OSS though because the key strength of that is not being tied to a single maintainer or group.
Modpacks still have attribution but they likely have attribution to the fork. The fork will have attribution in the source code somewhere but most MC players aren’t likely to actually look at the GitHub repo, so they’ll only see the fork’s name.
The lead developer changed the license to a much less permissive one because of drama surrounding being credited in modpacks. The dev thinks there are forks that exist solely to sidestep crediting the original mod, I’m not up to date enough on Minecraft modding lore to know if this is true or not.
I’m pretty sure there’s also a fork that branches off of the last GPL commit but I forget what it’s called.
It was, the company that bought out Audacity added a bunch of telemetry to it
Audacity was the first one I thought of.
Or MultiMC, PolyMC, the Sodium mod, or the original Minecraft Forge.
(Minecraft community devs need to stop having drama lmao)
Probably not great for games but it could totally drive a 1440p or even 4k monitor if you’re only using it for web/office/media playback. I’m curious to know if other people are using it as a general computer.
Edit: some people are totally using it as a general computer: https://www.gamingonlinux.com/2024/09/frame-of-mind-developer-ended-up-coding-the-game-on-steam-deck-for-a-year/
Not sure if this counts but (Reddit link warning) someone managed to do it in a VM
I have a Steam deck, here’s the answers to my knowledge:
Yes, you can connect a keyboard and mouse, and even in SteamOS they let you access KDE in a separate “Desktop mode”
Not sure about multiple monitors but you can connect at least one. There are docks made for it to do just that (the USB C cable has display port support I think)
It runs a 4 core/8 thread AMD laptop chip so assuming you get a mouse/keyboard it should work pretty well.
It has a 5W mode in the power settings in SteamOS so I’m assuming around that much at idle.
You can put other distros on it, it’s completely unlocked. You could even put Windows on it if you wanted. I’m not sure how easy the install process is though since I’ve just left SteamOS on mine.
You’re just being pedantic. Most autocorrects/keyboard autocompletes make use of text predictors to function. Look at the 3 suggestions on your phone keyboard whenever you type. That’s also a text predictor (granted it’s a much simpler one).
Text predictors (obviously) predict text, and as such don’t have any actual understanding on the text they are outputting. An AI that doesn’t understand its own outputs isn’t going to achieve anything close to a sci-fi depiction of an AI assistant.
It’s also not like the devs are confused about why LLMs work. If you had every publicly uploaded sentence since the creation of the Internet as a training reference I would hope the resulting model is a pretty good autocomplete, even to the point of being able to answer some questions.
25565 also gets a decent amount of malicious traffic because of Minecraft though. I’d recommend switching the port to something different at the very least. When I hosted a server for the first time on 25565 my router pretty immediately gave me warnings about attempted network traffic coming from Europe/Asia when I (and everyone I gave the IP to) live in the US.
TypeScript is still built on JavaScript, all numbers are IEEE-754 doubles 🙃
Edit: Actually I lied, there are BigInts which are arbitrarily precise integers but I don’t think there’s a way to make them unsigned. There also might be a byte-array object that stores uint8 values but I’m not completely sure if I’m remembering that correctly.
The way I was taught was that you usually start off with only an interface and then implementing classes, and then once you have multiple similar implementations it could then make sense to move the common logic into an abstract class that doesn’t get exposed outside of the package
I think that only happens when one of the phones doesn’t support MMS (which afaik is pretty much just ancient flip phones unless your carrier doesn’t support it for some reason). Otherwise group chats work “fine” but with terrible image/photo quality
You know neovim can use the exact same LSPs (Language Server Protocol) for intellisense as VS Code right? There’s intellisense, git integration, code-aware navigation, etc. Neovim can be everything VS code is (they’re both just text editors with plugins), except Neovim can be configured down to each navigation key so it’s possible to be way more efficient in Neovim. It’s also faster and more memory
edficientefficient because it isn’t a text editor built on top of a whole browser engine like VS Code is.I use a Neovim setup at home (I haven’t figured out how to use debugger plugins with Neovim and the backend I work on is big enough that print debugging endpoints would drive me insane) and I can assure you I have never given variable names one letter unless I’m dealing with coordinates (x, y, z) or loops (i, j) and usually in the latter scenario I’ll rename the variable to something that makes more sense. Also, we don’t do it to seem hardcore, it’s because there are actual developer efficiency benefits to it like the ones I listed above.
By your own logic you “can’t be bothered” to learn how to edit a single config file on a text editor that has existed in some form for almost 50 years (vi). Stop making strawman arguments.