• 0 Posts
  • 52 Comments
Joined 5 months ago
cake
Cake day: August 15th, 2024

help-circle
  • I got a 1U rack server for free from a local business that was upgrading their entire fleet. Would’ve been e-waste otherwise, so they were happy to dump it off on me. I was excited to experiment with it.

    Until I got it home and found out it was as loud as a vacuum cleaner with all those fans. Oh, god no…

    I was living with my parents at the time, and they had a basement I could stick it in where its noise pollution was minimal. I mounted it up to a LackRack.

    Since moving out to a 1 bedroom apartment, I haven’t booted it. It’s just a 70 pound coffee table now. :/


  • pixelscript@lemm.eetoProgramming@programming.devThe yaml document from hell
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    edit-2
    18 days ago

    The first four of them are “just how floats work”, yeah. Has nothing to do with JavaScript.

    typeof NaN
    // "number"
    

    Classic, yes, very funny. “NaN stands for ‘not a number’ but it says it’s a number”. But for real though. It’s still a variable that’s the Number type, but its contents happen to be invalid. It’s Not a (Valid) Number.

    The next three are just classic floating point precision moments.

    The Math.max() and Math.min() ones are interesting. Seems that under the hood, both methods implicitly have a fallback “number” that it compares to any argument list you give it that will auto-lose (or at closest, tie) with any other valid number you can possibly give it, so when you give it nothing at all, they leak out. Honestly, makes sense. Kinda ludicrous it needs to have defined behavior for a zero-argument call in the first place. But JS is one of those silly languages that lets you stuff in or omit as many arguments as you want with no consequences, function signature be damned. So as long as that paradigm exists, the zero-argument case probably ought to do something, and IMO this isn’t the worst choice.

    Every other one is bog standard truthy/type coercion shitlery. A demonstration of why implicit type coercion as a language feature is stupid.



  • Technically all you need is a DNS server.

    No computer knows where <whatever.tld> is located, unless that route is hard-coded in a host file somewhere. It always has to ask a DNS server for that information. If that DNS server doesn’t know, it will probably try asking some other DNS server, and so on up a chain. Eventually, it reaches a master DNS server that either has the answer on-hand somewhere in a database, or it says, “lmao, that doesn’t exist”. All the DNS servers and your PC down the chain take that answer. They might memorize it for a little while and hand it out to anyone who asks them, but after a while they’ll ask their way up the chain again to see if the answer has changed since the last time they asked.

    In order to “create” a TLD, all you have to do is make a DNS server that doesn’t ask up the chain. Just pre-program the list of valid domains yourself. You can make them anything you want. You can even “steal” existing domains and make them point to anywhere you want. Nothing is stopping you. Your DNS server will confidently report its pre-programmed answers to anyone who asks.

    The catch is that any Internet-enabled device that you want to be able to use your fancy new custom domains needs to be configured to ask your DNS server in particular. People would have to manually set your DNS server as their master server to ask, or they’d have to set it to ask some other DNS server that is itself pointed through some chain up to your DNS server. This is an explicitly opt-in system, and getting a significant mass of people to do that voluntarily is practically impossible. But it’s not technically impossible.

    The only reason you don’t have to do this manually with every single device you buy is because most devices either come from the manufacturer with a hard-coded list of DNS servers they should trust by default, or a device on the local network whispers in their ear and tells them who the local DNS server is and the device just goes along with it. It’s still technically an opt-in system; devices are simply either already “pre-opted in”, or there’s a system running on your network that auto-opts-in every device that connects, and most devices are designed to accept that auto-opt-in the moment they detect it.

    Provided you manage to get the devices you want to listen to your DNS server, you may additionally want to set up a root certificate authority. The thing that makes the little padlock show up in your browser URL box to let you know the connection is secure. Kind of like the DNS server thing, this is also very simple–just run a cheeky little OpenSSL command or two and you can be a root CA in no time–but it suffers from the same “opt-in” problem. You have to manually configure any device you want to use your system to trust your certificates. Most devices just come with a list of “acceptable authorities” built-in, and those defaults are all most people are using. But nothing is stopping you from adding anything you want to that list at any time. You’re just limited to doing it on a device-by-device basis.

    At my company, we’ve set up our own custom DNS server and our own root CA. We serve internal websites at a custom TLD we made up, and we sign them with our custom certificates to keep the connections secure. But that only works because we’ve manually configured our workstations to ask our internal DNS server for DNS requests, and we’ve manually configured all the workstations to trust our root certificate authority. A random device that connects to our network that isn’t configured with either of those things will not resolve any of our custom domains, nor will it securely connect to them. It also breaks if the configured devices aren’t on the local company network, since the DNS server isn’t reachable from the public web. Which is fine for us, since those internal websites aren’t reachable on the public web either. But yeah, that’s an example of the limitations.

    If you want to create a TLD that will be auto-accepted by everyone who is already running the default chains of trust (which is probably what most people actually mean when they ask something like this), you have to seek out the big daddy at the root of that chain of trust and ask them to poof your TLD into existence for you. That would be ICANN, and they probably won’t do anything like that without a big fat check and a lot of corporate lobbying.

    tl;dr - The tech is built in such a way that nothing is stopping you from making your own toy, and anyone can play with your toy without needing to do much. But if you want your TLD to “just work” for everyone in the world without asking every single one of them to explicitly opt-in, which is probably what you actually want, then no, you basically can’t do that.




  • There’s lots of software out there that is available to use without payment, but is still license restricted in such a way that you are not permitted to redistribute, modify, use for commercial purposes, etc. To many, these rights are the far more important facet of “free” software, above what it costs.

    But since the English language has the same word for all of these concepts, we have all these yucks running around with zero-cost but right-restricted software wearing the “FOSS” badge thinking they’re part of the club. So some people add “Libre” to the acronym to explicitly disambiguate.







  • it’s a venture capital-backed startup that has been very eager to exit its growth phase and enter its aggressive monetization phase so it can start making its shareholders some money. They’ve already tried a few things that didn’t work, like trying to turn it into a Steam competitor.

    The service to date is mostly fine. If you’re like most people who don’t mind exchanging some privacy and control for access to an app that has a nonzero professional UX design budget, it’s pretty fantastic. But the writing has been on the wall for a long time that enshittification is near on the horizon. It’s not a question of if, but how soon.


  • That’s it? That’s the whole thing? This is what all the censorship buzz is all about? This reads like an unremarkable angsty Reddit comment. Every single social platform is filled with countless of these.

    I guess this is qualitatively different because this is him describing something he actually did after the fact rather than the meaningless posturing most other people do. At that point though, is it still even “inciting violence”? The violence was already incited. I don’t see him explicitly threatening more or rallying others to do more. “Here’s why I did the thing” is not the same thing as “I’m going to do the thing” or “you should do the thing, too”.

    The censorship of this is stupid. I hope this gets Streisand’d to the heavens.



  • I’ll do ya one further: Copyright should have the same lifespan as a patent. 20 years max. No extensions, no exceptions. I’d even cosider less time than that.

    If you retained the unilateral rights to copy your idea for 20 fucking years and you haven’t made your healthy profit on it already in that time, tough. Your work will forcefully enter the public domain so people who were likely actually still alive when it was culturally relevant get a shake with it.

    There is no reason why something created during my childhood ought to still be languishing locked up in trust of some dead man’s corporation by the time I’ve withered away of old age and my grandkids have done the same. The severe generational lag of culture and accessible technology created by copyright in its current form is absurd.

    If you want to chase your golden goose forever, keep making new iterations of it that have their own copyrights that fairly compete against everyone else’s in the marketplace of ideas. Get off your laurels. Get on your toes. Keep making new, inspired things. Earn your goddamn right to continue being seen as the rightful creator to follow up what you’ve previously made in the past.


  • pixelscript@lemm.eetoLinux@lemmy.mlDo you use Gnome or KDE Plasma?
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 month ago

    Five years of Mate (which is essentially Gnome 2 on life support) replaced by a couple years of KDE Plasma.

    Mate treated me well enough, it was mostly stable, capable, and competent. But it was a bit crusty around the edges, and being so niche meant search-engine-visible help resources for anything than went wrong were virtually nonexistent. In hindsight, using it as a beginner’s DE was probably a mistake. I suppose in being so austere and devoid of resources it taught me to develop more of a “get to the bottom of it yourself” attitude to debugging and have humbler expectations about form versus function, but that’s a pretty rough sell to most people. Mate is definitely better as a drink than a desktop environment.

    I don’t need to talk about KDE Plasma at all because the rest of the thread already has. I have nothing new to add beyond the comment that I like their mascot character.

    I have no informed opinion on Gnome 3. All I’ve gleaned about it is that it’s supposedly “my way or the highway” by design, and the “my way” in question is controversially counter-grain to a lot of established expectations (e.g. it’s literally why Mate exists). Which is neither here nor there to me, objectively. But I will say I have no interest learning a new way of doing things, even if it’s theoretically superior, when a conventional system still exists, is viable, is highly polished, and is kept sharp-edged. Hence, KDE Plasma.




  • Well, I also tend to consider ultrawide monitors a mistake in their own right. Why would you want a 49" wide literally anything if it’s not some kind of immersive media experience where menus are irrelevant anyway?

    Of course, if that is in fact exactly what you bought it for, I have no complaints. Even if I disagree with having one for other purposes, that’s still no reason for the OS to punish you for having one when you try to use it that way when that problem is completely avoidable.