Star Wars takes place entirely within one galaxy, and the number of supernova per galaxy is something like 1 per century, so, nah, Han was just bullshitting to stall for time while his busted-ass computer cobbled together numbers.
Most movies don't even leave our stellar vicinity, because they want to use hyped star/constellation names and these are from the very local set of stars. Not only a naked eye sees only around a few thousands stars, but most of them are basically next door. The mean distance to the star that you can see is <1% of galaxy size. Almost everything you see is in a 10px circle on the 1080p fullscreen galaxy map.
Indeed. They didn't say it happened an "int" time ago. They didn't even say a "long" time ago. They said a "long long" time. I'd have to pull up a copy of the C standard to be sure, but even if the units of "time" are plank times, I suspect the implications could easily be that the story occurs before the big bang.
Same. It’s a pattern I’m reaching for a lot, whenever I have multiple logical things that need to run concurrently. Generally:
- A struct that represents the mutable state I’m wrapping
- A start(self) method which moves self to a tokio task running a loop reading from an mpsc::Receiver<Command> channel, and returns a Handle object which is cloneable and contains the mpsc::Sender end
- The handle can be used to send commands/requests (including one shot channels for replies)
- When the last handle is dropped, the mpsc channel is dropped and the loop ends
It basically lets me think of each logical concurrent service as being like a tcp server that accepts requests. They can call each other by holding instances of the Handle type and awaiting calls (this can still deadlock if there’s a call cycle and the handling code isn’t put on a background task… in practice I’ve never made this mistake though)
Some day I’ll maybe start using an actor framework (like Axum/etc) which formalizes this a bit more, but for now just making these types manually is simple enough.
FWIW I have no problems (and see no ads) on the site running a pihole dns-based blocker on my network.
In-browser blockers are interesting because they’re actually modifying the DOM, and any JavaScript which expects the DOM to have certain elements, and doesn’t handle them being missing, can cause these kinds of failures. Network-level blocking should at least cause the requests to the ad services to fail in the first place, which has a much higher likelihood of being a tested code path (ie. Not breaking the site just because a request failed.)
Basically I’m not surprised that in-browser, DOM-manipulating ad blockers cause failures in a lot of sites’ JavaScript, and I wouldn’t necessarily chalk it up to maliciousness on Slashdot’s part.
> There's no way that the broader Republican constituency is going to ignore this fact, regardless of Trump.
There’s no such thing as the broader Republican Party. It’s just Trump now. It’s like when a CEO packs a board with his friends and family, you don’t expect that board to keep the CEO in check.
In addition, Trump is a cult-like leader. His supporters will never, ever, ever break from him. They could lose every last penny, it wouldn’t matter. They’d blame the democrats. Trump is infallible and to question that is to attack them personally, they are unable to separate themselves from him at this point.
This is not hyperbole, it is an observation of fact for the last 8 years. He has never lost supporters. Everyone that has bet on him losing support from congress or his base, has been hilariously and spectacularly wrong, every single time. (Including me… I used to be pretty hooked on Trump news in his first presidency, thinking “this will surely sink him” after every single scandal. I still want to believe it’ll happen. But I know now it never will. You can only be wrong so many times before you realize it’ll never happen.)
The only realistic path to checking Trump is a massive blue wave in 2026 from pissed off (non-Trump-base) voters. But that’s 2 years away.
GPL3 closes what was considered a loophole, where device makers would ship a product derived from GPL’d code, and release the source, but provide no ability for users to actually compile and run that source on the device (this was called “tivo-ization” at the time, because TiVo did it.)
So for iOS, it’s pretty obvious why they don’t use gplv3… because it would violate the terms.
For macOS they could certainly get away with shipping gplv3 code, but they do a lot of code sharing between iOS and macOS (and watchOS/tvOS/visionOS/etc) and it doesn’t make much sense to build on a gplv3 foundation for just one of these operating systems and not the others. So it’s simpler to just not use it at all.
It also means they’re more free to lock down macOS from running your own code on it in the future, without worrying about having to rip out all the gpl3 code when it happens. Better to just not build on it in the first place.
> this was called “tivo-ization” at the time, because TiVo did it.
It's not widely known but what TiVo actually did was something different than this, and both RMS and the SFC believe that both the GPLv2 and GPLv3 allow what TiVo actually did. Some discussion and further links via https://lwn.net/Articles/858905/
Current versions of macOS use a signed system volume [1], much like iOS - under a standard system configuration, the user can't replace system executables or other files, even as root. Unlike iOS, the user can disable SSV, but I'm not certain that's sufficient for GPLv3 - and I can't imagine Apple feels comfortable with that ambiguity.
By the GNU website it would be sufficient. The website says:
> GPLv3 stops tivoization by requiring the distributor to provide you with whatever information or data is necessary to install modified software on the device
By my reading of this, there is not a requirement that the operating system is unlocked, but the device. Being able to install an alternate operating system should meet the requirement to "install modified software on the device."
> This may be as simple as a set of instructions, or it may include special data such as cryptographic keys or information about how to bypass an integrity check in the hardware.
As you've mentioned with disabling SSV, and as Asahi Linux has shown, Apple Silicon hardware can run 3rd party operating systems without any problems.
The hardware might be open for now but you can imagine Apple would like to keep the possibility of closing it off on the table, thus the allergy to gplv3.
Edit: "without any problems" is definitely a stretch.
I feel like there is a wide gap between "hand holding" and holding the specs locked up in Cupertino never to see the light of day. A M-generation Mac is not the same kind of set up to allow running software as say, any x86 machine.
I also imagine that quite simply saying "look you can compile this binary as an alternative and run it on the machine" would fit the requirements, even if it doesn't entirely capture the spirit of anti-tivoisation
Sure, though there's little point in replacing executables such as rsync when you can install your own version (perhaps through a package manager and package repository / database such as Homebrew [1] or MacPorts [2]) and use the PATH environment variable to decide which version of the executable you'd like to use in which context.
This might be true for the most part as an end user, but from a licensing perspective regarding the original binaries, this is irrelevant.
You must be able to modify and change the code, not merely append to the PATH:
> Tivoization: Some companies have created various different kinds of devices that run GPLed software, and then rigged the hardware so that they can change the software that's running, but you cannot.
My claim is entirely from the end user perspective. We should not really care which tool Apple includes for their licensing purposes. If we have a dependency on a particular tool then we have the ability to install and use it ourselves. The signed system volume does not interfere with our ability to do that.
I'd advise looking at the actual language of the GPL, not the FSF's (non-binding) statements about what they intended it to mean. The relevant text is at the end of section 6 of https://www.gnu.org/licenses/gpl-3.0.txt - search for the words "Installation Information". I am not a lawyer, but my reading of the text suggests that:
1) The so-called anti-Tivoization clauses are scoped to "consumer products". Don't ask me why, but the language is very deliberately constructed to limit these terms to products "which are normally used for personal, family, or household purposes" - if you're building hardware for commercial or industrial use, none of this applies.
2) These clauses are also scoped to object code which is conveyed "as part of a transaction" in which the user purchases or rents a consumer product which the code is intended for use with. The intent was to limit this to software which was incorporated in the device; however, it accidentally ends up applying to any consumer transaction where the user purchases (e.g.) both a computer and a piece of software which includes GPLv3 code - regardless of who's selling them. So, in practice, this actually applies to any GPLv3 software, regardless of whether it's part of a device's firmware or not.
3) The end result of these clauses is to require that any software distributed under these conditions (which is to say, any GPLv3 software) be distributed with "Installation Information". It's somewhat ambiguous what precisely this encompasses, but it's quite possible that, if Apple distributed GPLv3 software, some of their internal software signing keys and/or build processes would be considered part of that Installation Information.
> Current versions of macOS use a signed system volume
Sometimes I feel like I'm deluding myself with the small inconveniences I put myself through only using Linux, but finding out about stuff like this wipes that away.
> It also means they’re more free to lock down macOS from running your own code on it in the future, without worrying about having to rip out all the gpl3 code when it happens. Better to just not build on it in the first place.
how does locking down macOS have anything to do w/ GPL compliance? Apple is free to do whatever BS with the OS they ship in terms of terminal access, user permission level, etc regardless of GPL of any code on the device. I could ship a GPLv3 system tomorrow that disallows user root access and as long as I make the OS source freely available and redistributable, it's fine.
If you make a device which uses GPL’d code, and provide all the covered source code you used, but prevent users from putting any modified code on the device, you are in violation of GPLv3, but not GPLv2. That means this sentence:
> I could ship a GPLv3 system tomorrow that disallows user root access and as long as I make the OS source freely available and redistributable, it's fine.
Is not true for gpl3. It’s called the “tivo-ization” loophole, and it’s one of the principal reasons the GPL3 was made in the first place. I think you’re just wrong.
(Note: I’m not claiming Apple is would be in violation for shipping e.g. a GPLv3 bash on macOS, today, only that they would be in violation for doing that on iOS today, or if in the future they locked down macOS in the same way that iOS was, then for macOS too.)
> they’re more free to lock down macOS from running your own code on it in the future, without worrying about having to rip out all the gpl3 code when it happens. Better to just not build on it in the first place.
That's actually quite scary what you wrote there.
That's also even more scary to me, as I am really watchful for such restrictions which can IMO happen in current OSes any
time now ...
No, this doesn't quite scan, because there's no reason they couldn't ship a current of `bash` or any number of other GPL3 things. Aurornis is probably closest to the mark: it is legally ambiguous, and Apple probably does not want to be a test case for GPL3 compliance.
If they shipped a gpl3 version of bash on iOS, they would be in violation. This isn’t really a question: gpl3 requires you to not only provide the source if you use it in a product, but the ability to modify it and run your modified version. Which iOS doesn’t let you do.
Now, macOS would be fine in shipping a gpl3 bash. But not iOS. (Yes, iOS has bash. Or ar least they used to, they may be all on zsh now, I’m not sure.)
So, the question becomes to Apple, do we ship different bash versions for different devices, and treat macOS as being different, and have to worry about only using newer bash features on macOS? Or do we keep the same old version on all platforms, and just eschew the new bash everywhere? It’s a pretty simple decision IMO, especially because users can just use brew on macOS and put their own bash on there if they want.
Others are pointing out that gpl3 is less tested in court and that lawyers are just more uncertain/afraid of gpl3 than gpl2, especially with respect to patents… but I don’t think these are mutually exclusive. It’s clear that they can’t ship gpl3 on 4 out of their 5 operating systems. macOS is an outlier, and from an engineering standpoint it’s a lot simpler to just keep them all the same than it is to ship different scripts/etc for different platforms. It can be both reasons.
> For macOS they could certainly get away with shipping gplv3 code
Even limiting that to “in the USA” I would never say certainly for a license for which so little jurisprudence exists.
Once you add in multiple countries, it doesn’t get clearer.
And yes, that applies to GPLv2, too, but that ship has sailed. I also don’t see them add much new GPLv2 licensed software.
For GPLv3, they also may be concerned about patents. If, to support some MacOS feature, they change a GPLv3 licensed program that uses one of their patents, GPLv3 gives others the rights to use those patents in versions of the tool that run on other platforms.
The creators you’re paying on Patreon aren’t hosting their own videos though, YouTube is. Hosting videos isn’t cheap, who should cover that cost?
I get that YouTube doesn’t give enough of a percentage of profits to the creator, but the alternative should be a different video hosting platform that does give more profits to creators. Not patreon, which offers nothing in return. (It’s a glorified payment processor and doesn’t actually do any video hosting.)
That there are vanishingly few alternatives to YouTube in terms of actually hosting videos (I know of Vimeo and, I guess nebula? Only because it gets continually pushed on me by creators) maybe tells you that the act of hosting videos at scale is kinda hard to do profitably. Or else there’d be tons of alternative options.
I don't really care where the videos are hosted, though. I watch on YouTube because that's where my beloved creators choose host their vids. If they started to host their videos on Vimeo or even archive.org, I would watch them there since I only care about the content.
> Hosting videos isn’t cheap, who should cover that cost?
The ad revenue is in the billions and is steadily increasing each year. I would bet that the costs are more than covered.
> The ad revenue is in the billions and is steadily increasing each year. I would bet that the costs are more than covered.
You're changing the context of the discussion here. snailmailman had said:
> Youtube so badly wants me to pay for premium. But the ads they show me are almost entirely scams and questionably legal content [...] On desktop uBlock still works in Firefox at least. But I’ve basically given up YouTube on iOS.
Saying they're unwilling to tolerate ads in YouTube. When asked why not just pay for YouTube premium, you came and said why you don't pay for YouTube premium. When pressed, you say "because YouTube's ad model will make them the money they need to host the videos."
Since you haven't said whether you block ads, there's two ways of interpreting this:
1. You don't block ads, you're ok watching YouTube ads, and you pay the creators directly through patreon. Great! But that makes your reply -- to why snailmailman doesn't pay for YT premium -- a little off-topic, because we were discussing ad-blocking.
2. OR, you're not ok watching YouTube ads, you block them, and then pay creators on patreon directly, meaning you don't care about covering the costs of hosting videos, because you don't believe YouTube should be showing you ads, and you don't want to pay them for the service. In which case we're back to "who should cover the costs." Maybe your answer is "other suckers, but not me", which is quite hypocritical.
I do block ads on YouTube, but I also block ads everywhere else without exception. I think that ads suck and that everybody should refuse to consume them. Not everybody is bothered by them, though, and they are not "suckers" for thinking so.
If YouTube were to offer me a service that I think is worth paying for, then I would. I think that YouTube Premium is not a product worth paying for based on what they're offering, and also I noticed that I watch YouTube videos less and less over the years. Nebula and Curiosity Stream convinced me to pay for their services, so perhaps YouTube just has to step up?
reply