• 0 Posts
  • 27 Comments
Joined 1 year ago
cake
Cake day: September 25th, 2023

help-circle
  • pixelscript@lemmy.mltoOpen Source@lemmy.mlKrita FTW
    link
    fedilink
    English
    arrow-up
    1
    ·
    7 months ago

    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.





  • 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.


  • pixelscript@lemmy.mltoProgrammer Humor@lemmy.mlDamn Linux Users
    link
    fedilink
    English
    arrow-up
    16
    arrow-down
    1
    ·
    9 months ago

    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.


  • 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.



  • 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.



  • There are really only three licenses you should ever consider when making a new project in earnest: GPL if you want it to stay free forever, MIT if you don’t care. Put an L in front of GPL if your project is a library. The end.

    Any CC license including CC0 looks fine on paper, and they are court-tested, but anyone with a legal department won’t risk dealing with one in the context of software, because CC licenses are for creative works and scientific research, not software. The main thing they’re missing is a warranty release.

    The Unlicense feels like an earnest attempt to fill the void that CC0 fails to fill, but it isn’t a tested license. Everyone with a lawyer won’t touch it with a 10 foot pole because they don’t want to be the ones to find out how enforceable it really is. Besides, the only thing it gains you over the MIT is the ability to go uncredited. Which is nice feature; if people didn’t want this we wouldn’t have so many attempts to make a license that has it. But I feel like of all the features of a free software license one should be concerned about, explicit lack of credit is a pretty low-rung one.

    Direct public domain insertion is good and effective, but is not global. Many places in the world have no formal legal system to do this (Germany is a famous example). PD dedication without a permissive fallback license makes your code completely unusable in these places. It’s exactly why the CC0 and Unlicense exist in the first place.

    Every single other license is either a meme license not worth the toilet paper it’s written on, a weaker version of the GPL/MIT, or the GPL/MIT with extra steps.



  • 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.


  • pixelscript@lemmy.mltoOpen Source@lemmy.mlPlease don't use Discord for FOSS projects
    link
    fedilink
    English
    arrow-up
    27
    arrow-down
    1
    ·
    edit-2
    9 months ago

    I don’t mind Discord being a centralized platform for open source project discussion, if and only if the only roles it serves specifically play to its one strength, which is real time discussion. Asking for live support (from the dev if they are there, or the community if they are not) and doing live bug triage are the two big use cases.

    Should contact for these things be real time? Maybe, maybe not. Async discussion like you get on forums or via email can do the job. But if you value real-time chat, Discord does it well.

    Everything else? Do it elsewhere. Do not make Discord your only bug tracker. Do not make it your only wiki. Do not make it your only source of documentation. Do not make it the only place you broadcast updates or announcements. Do not make it your only distribution platform for critical downloads. And for the love of god please do not make it the only way to contact you. I don’t care if you allow Discord to additionally do these things using integrations, that’s fine, just stop trying to contort Discord into your only way of doing these.

    Is Discord the only capable option for real time chat? No. But it has several things going in its favor, namely how one can reasonably expect a good sum of their target user base is already using it independently for other purposes, in addition to its numerous QoL features.

    It can also better integrate into the dev’s personal routine if they already use it independently. Like, do I have an email address? Yeah. Do I read my email on any reasonable interval? Hell no. My email inbox is little more than a dustbin for registration confirmations and online order receipts. I’ve had email for decades and I think I can count the number of non-work, non-business conversations I’ve held over it in that whole span of time on one hand. Meanwhile, I’m terminally online on Discord. So if I’m gonna be a small independent FOSS project developer, am I gonna want to interface with everyone over email? No. I’ll still make it an option, because being only contactable on Discord is cringe, but it will not be fast. Discord will be my preferred channel.

    Should I put more effort into being contactable on other platforms, because it’s the right thing to do? Meh. I have no duty of stewardship to be available on platforms available to anyone in particular. I maintain this hypothetical project for free, on my own time, of my own volition, and I provide it to you entirely warranty-free. I have the courtesy to make all static resources available in sensible public places, and I provide email as a slow, async way to reach me. But if you want to converse with me directly in real time, you can come to me where I’m hanging out.


  • pixelscript@lemmy.mltoProgrammer Humor@lemmy.mlPHP Moment
    link
    fedilink
    English
    arrow-up
    2
    ·
    9 months ago

    PHP stack traces are effectively identical to Java’s in every metric I’m concerned about.

    If you get them sensibly in a log file, anyway. If you allow PHP to render this god awful fugly table inline with your page? Well, have fun. Yes, all the same info is there, and on paper it’s organized in an easier to read format. But oftentimes the table will collide with and mangle with other elements and styling on your page, making the trace irritating or impossible to read.

    This isn’t much of a problem of course, because aforementioned log file is absolutely the way to do it in the first place, and PHP lets you. And hey, absolutely obliterating your page DOM in strange and exciting ways on error sounds like a fantastic way to ensure errors get caught and addressed in testing, so even the unpredictable mangled DOM bullshit is useful in its own way.

    But if someone wants to dunk on PHP for at least outwardly appearing to promote trying to debug it with these awful stack trace tables, I think that’s a well-earned roasting.


  • There is a long, long list of classifications they may put you in. I believe appointing one to you is their job, so you don’t get to pick. I read through all of these and couldn’t decide which of them really applies to, “I am building a FOSS app/library”.

    There is a “scientific research” designation. Does that count? Well, if so, it says this:

    Scientific research does not include activities of a type ordinarily carried on as an incident to commercial or industrial operations, as, for example, the ordinary testing or inspection of materials or products, or the designing or construction of equipment or buildings.

    Is building software “designing or construction of equipment” that is “incident to commercial operations”?

    Maybe it belongs under classification U41, which is Computer Science? Does building software count as “research” into comp sci for the benefit of the general public?

    Maybe it’s W80, public utilities? I think that’s intended more for municipal utilities like electricity, water, gas, and sewer, not public software projects.

    I really have no clue. Here be dragons.


  • IANAL and I have zero experience doing anything remotely like this.

    But from my cursory reading of the IRS instructions on their website, doing this in the US specifically is more or less a two step process:

    1. Form an organization by filing with your local state. Every state handles this process differently; in some (most?) this can be as straightforward as filling out a form, paying a processing fee on the order of $100 or so, and waiting for approval. Just don’t form an LLC in particular, as that complicates the next step.

    2. Fill out Form 1023-EZ with the IRS. This requires proving your organization qualifies for tax exemption (it is not clear to me whether this would) and a filing fee of $275. Your org also cannot possess more than $250,000 of assets, cannot receive more than $50,000 of revenue from donations within the span of a year, and cannot be registered as an LLC. If you fail to meet these, you need to fill out the regular Form 1023, which I believe is more involved and has a more expensive filing fee.

    If both of these forms are accepted, kapow! You are now a tax-exempt organization, and other corporations can charitably donate to your project for tax breaks. Just remember to do your station-keeping tasks like filing your annual company and tax exemption status renewals, reporting your earnings to the IRS, and sending receipts to donors.


  • pixelscript@lemmy.mltoProgrammer Humor@lemmy.mlIT Help Desk
    link
    fedilink
    English
    arrow-up
    16
    ·
    9 months ago

    It bumps the speed and officially supports Displayport and PCIe protocols being tunneled through.

    Also, as a tiny nit for seemingly no other reason than to piss us all off, they have decided the “correct” way to write it is “USB4” (no space). This is in contrast to every previous version of USB such as “USB 3” (space).


  • pixelscript@lemmy.mltoProgrammer Humor@lemmy.mlGit Rules
    link
    fedilink
    English
    arrow-up
    5
    ·
    9 months ago

    You don’t. One of the core aspects of Git is that it fully expects conflicts to be inevitable, and it gives you tools to resolve them.

    I will say that if you learn to aggressively rebase branches, you can at least occasionally reduce the complexity of conflicts.

    If you are working on a long branch and three other branches that conflict with your changes land in the meantime, a simple merge will force you to reconcile all of those conflicts in one big stinky merge commit.

    If you instead rebase after each individual branch lands, you resolve the same number of conflicts but in three smaller, focused steps instead of one big ugly one. You also don’t get a merge commit full of redundant deltas that serve only to resync your branch to master; all the conflict resolution becomes baked in to your individual branch commits.

    Spreading out the problem is not reducing the problem. But it can make fixing the problem less daunting, which has a similar effect.


  • pixelscript@lemmy.mltoProgrammer Humor@lemmy.mlNever again
    link
    fedilink
    English
    arrow-up
    8
    ·
    10 months ago

    To me it comes off like you’re irrationally afraid to invoke its name.

    I get and appreciate that you’re trying to make a statement here, but in my opinion it isn’t landing the way you think it is. By giving its name special reverence you’re needlessly elevating it, not diminishing it.