I just got home from a 12 hour day of work. This has been my entire week.
Help.
I just got home from a 12 hour day of work. This has been my entire week.
Help.
Once you get a feel for building and owning, then you can start making more informed choices about what you really need.
it’d be poor style to put more than one statement on a line
Unlike Python, most languages do not endorse a specific concept of style. You’re free to dabble in all the bad style choices you like, on the off chance that once in a blue moon they prove to be situationally useful.
The only difference between a novice and a professional is that a professional checks what they are copying to understand it first before allowing it into their codebase.
Novices copy code to avoid having to understand it. Professionals copy code to avoid reinventing the wheel.
I replied to that thread.
OP was claiming to be working on a static HTML-serving search engine. They suggested that because it’s just HTML and CSS, and that interested parties can use Inspect Element to read the network requests, that it constituted “open source”.
Commenters then got on his case about not open sourcing the server backend. OP defended that choice saying they didn’t want a competitor taking their code and building a company off of it that would “drive [them] out of business”. Uh-huh. So, proprietary software, then. Bye.
Seeing “please” in the script for some commands but not all of them is giving me INTERCAL flashbacks.
Nvidia and AMD broadly cover the same use cases. Nvidia cards are not intrinsically better to my knowledge, Nvidia simply offers ultra high-performance cards that AMD doesn’t.
If you just need nonspecific games to run decently, a card from either brand will do it. If you need to run the most intensive games there are on unbelievable settings, that’s when Nvidia should be edging out.
ML dabbling may complicate things. Many (most?) tools are written for CUDA, which is a proprietary Nvidia technology. I think AMD offers a counterpart but I do not have details. You will need to do more research on this.
I am going to continue to tell people “just get an AMD card”, but only if they have indicated to me that they are shopping for new parts and haven’t committed to any yet.
Giving that advice to someone who already has an Nvidia card is just as useless as those StackOverflow answers that suggest you dump your whole project architecture and stuff some big dumb library into your build to solve a simple problem.
People tend to contribute to the projects they already have the skills for.
People also tend to pick up new skills when they have a driving incentive to do so, like supporting a project they have a vested interest in seeing improved.
You need to learn the language’s structures
Most of the bread and butter ones have analogues in other languages you should readily understand. More language-unique structures are rare; the more niche they are, the lower the odds your ability to contribute in a meaningful way hinges on your understanding of them.
you need to learn how the compiler works
You really don’t, though? Modern compilers, particularly the Rust compiler, are designed to abstract away as much of the details of compilation as possible. If the project really does need to tickle the compiler a certain way to get it to build, it will almost certainly have a buildscript and/or a readme.
you need to learn the libraries that the FOSS project is using
This is true regardless of the language in use. I’m not sure why you brought it up.
you need to learn the security pitfalls for the language
I would imagine most of these language-specific security footguns are either A) so specific that you will never hit the conditions where they apply, B) are so blazingly obvious that code review will illuminate what you did wrong and you can learn how to fix it, or C) so obscure that even the project owner doesn’t understand them, so you’d be at minimum matching the rest of the codebase quality.
Mind, I am not insinuating that one can simply bang out a whole new submodule of a project in an unfamiliar language with minimal learning time. Large contributions to large projects can be hard to make even when you’re a veteran of the language in use, as the complexity of the project in and of itself can be its own massive barrier. But not every contribution needs to be big. And for most contributions, I don’t believe the language is the most significant barrier to entry. It’s a barrier, sure. But not the biggest one.
I’d wager it’s not having a significant impact on the volume of contributions to Lemmy in particular.
No one said it was shameful?
It’s a huge win, but not the kind of win people reading the statistic with no context (like me) probably thought.
I’m sure a lot of us looked at “15 percent of desktop PCs in India run Linux” and, regardless of whether it was hasty and irresponsible for us to do so, extrapolated that to, “15 percent of Indian PC users are personally selecting Linux and normalizing its paradigms”.
But in reality, it sounds more like “15 percent of Indian PC users use Linux to launch Google Chrome”. Which is impressive, but not the specific kind of impressive we wanted.
It feels a bit like how I imagine, say, a song artist feels when they pour their heart and soul into a piece of music, it gets modest to no traction for a while, and then years later a 20 second loop becomes the backing track for a massive Tiktok meme, and almost zero of that attention trickles back to their other work.
Stateless functions still deal with state, they just don’t hold onto it. Without state to mutate, a so-called stateless function doesn’t do anything.
In declarative languages, your state is the sum of everything you’ve declared. You don’t query results out of thin air. Computational results logically conclude from everything you set up.
HTML ““has state””, as in it has a DOM, but it doesn’t do anything with it. You don’t mutate the DOM after it’s built, or query the DOM to compute results that weren’t trivially evident from the state you declared.
You can do those things with JavaScript. But all that proves is JavaScript is a programming language, and HTML is just a data format it can interact with.
Sure. Which is why I would only make this distinction in a place where I can reasonably expect people to know better. Like, perhaps, a niche community on an experimental social media platform dedicated to programming.
This is a tremendous amount of cope. Implying there are Lemmy users just lining up to contribute PRs if only it wasn’t written in Rust. Give me a break!
If someone was competent enough to author code that’s fit to pull into a project like Lemmy, they’re more than capable of translating those skills to Rust. No language seeing modern significant use is so esoteric that a reasonably seasoned developer couldn’t make something competent in it within a week of starting to learn its syntax. Maybe a day, even, if the language you are trying to learn is highly similar to one you already know.
The bar for me is whether the language describes an executable program that has state and control flow.
You could perhaps be generous and describe the DOM as a (write-only) state and the parser as a control flow. I don’t, personally.
HTML is just a data container format to me. Belongs with the likes of XML, JSON, JPG, PNG, GIF, MP3, MOV, etc.
The umbrella term I’d use for all of these is “coding”. That’s the skill of understanding structured languages and format specifications, and understanding how you can and can’t piece things together to make something coherent. This is a critical requisite skill to programming. But programming is more.
Programming is the art of juggling of state and control flow in clever ways to trick funny rocks into computing something you don’t know. It doesn’t need to be general purpose, but I would argue it indeed needs to have a purpose. It has to be something more than just a pile of declarations you know from the outset. Otherwise it’s just structured data.
This is almost word for word what I said in another friend group today. Protecting individuals is literally why LLCs exist. It’s what “LLC” stands for.
Nintendo Hyper Beam’d them into oblivion but they got a Substitute up first. The defense strategy was smart. The strategy that put them in the position of needing to use the defense strategy was idiotic, yes, but the defense was smart.
Short of Nintendo doing nothing at all, this is probably the best outcome that could have realistically happened.
In a rather unorthodox way, yes.
Android is one of those rare examples of a Linux kernel not being paired with GNU tools. I believe Android wrote their own versions of all the tools they wanted.
The kernel is also extremely locked down by default. They very intentionally designed the OS in such a way that every facet of the kernel is kept abstracted away from you. It’s about as black-boxed as you can get, to the point where the fact that it’s Linux underneath is almost meaningless.
Indeed, it is my choice. And as of now, even in light of all of this article’s information, I have chosen Discord. For now.
Deal breaking flaws to others are not necessarily deal breaking flaws to me. If their differences in principles prevent them from reaching me on my preferred platform, tough noogies for them.
You’d certainly think so. But never underestimate a user’s ability to jury-rig a piece of software into doing something it wasn’t designed to do, ignoring any and all obviously better solutions as they do so.
I don’t think I’ve ever actually seen documentation published on Discord and nowhere else. But I do very often see no documentation whatsoever except a “just ask around on the Discord” link serving the role.
Discord probably isn’t used as a robust ticketing system either; usually if anything it’s a bot that will push all tickets to an actual GitWhatever issue, which is fine. But again, what I do see often is projects with no ticketing system whatsoever, and a Discord link to just dump your problems at. If the issue tracker on the repo isn’t outright disabled, it’s a ghost town of open issues falling on deaf ears.
Announcements can be pretty bad. Devs can get into a habit of thinking the only people who care about periodic updates are already in the Discord server, so they don’t update READMEs, wikis, or docs on the repo as often as they should, allowing them to go out of date.
Fwiw I’ve also seen several projects that have Discord servers with none of these problems, because they handle all those other parts properly.
I mean, you’re free to continue using your crescent wrench as a hammer if you find it drives nails for you decently well and you are comfortable using it that way. But it was neither designed with that purpose in mind, nor does anyone expect you to use it that way, so no one will be writing how-to guides on it.