5,400 karma · joined May 4, 2018
That's a silly idea. While there are laws that ensure to a decent extent that there is a single company called "Google", so that it's relatively unambiguous who `google.com` should refer to, there is no uniqueness whatsoever to personal names. There are likely hundreds of thousands of people called "John Smith", so the FQDN `john.smith.name.` would not really tell you anything.
This is without even going into the fact that "first-name.last-name" is culturally specific (though, to be fair, a large proportion of cultures in the world use this format).
I don't think I can imagine what you mean here. How would my compilation success depend on whether an Admin has given me the right to read or write to a certain path?
Do you get a huge list of capability keys when you log into the system, one for each path? Do you ask a service for a capability when you want to perform the action?
All I take issue with is the claim that this is a way to make the unauthorized actions "impossible to utter". The reality is that, at least at some level, you always have to evaluate a request and, based on some cryptography related to user identity, decide if you'll honor it or refuse it. That may be checking a cookie to look up the user and then checking a separate place to see if the user is authorized to perform the action (perhaps with an extra step of finding a role, etc), or it can be checking a "pre-approval" signature obtained at some earlier point as you're describing here, but it's ultimately the same concept, and isn't "implicitly handled" in one case anymore than the other.
Furthermore, even here, this doesn't cover another case: what if I am allowed to add files to destPath, but I'm not allowed to modify a specific file? This API still has to fail if `destPath/file.Name` already exists and I'm not allowed to modify it (or it at least has to do something different than when `destPath/file.Name` doesn't already exist).
And even if we accept that we can only ever write things in this way, this still leaves the problem of terminology intact. Depending on the technology, it's simply not true that I can't "utter this phrase" if I don't have the capability. For example, if this is an HTTP API, then I can always do a `POST /dest-path/upload-file` with the file I want, regardless of whether I have the authorization to access that or not. Sure, if it's a HATEOAS-style API, the `GET /dest-path` might not return a link to `./upload-file` at all, but that doesn't mean that I can't utter that sentence - i.e. issue that HTTP request.
This sounds like another layer of weird terminology that doesn't mean anything for someone who is not familiar with whatever capability system you're thinking of.
Say I am a user who can see a particular directory on a shared setup. I try to upload a file in this directory, using the same method that worked on another directory. The question of AuthZ is: will I be allowed to do it or not? In the plain sense of the words, I can absolutely "utter the action", I have all of the "verbs" (upload) and "nouns" (the file, the destination path). Still, I should not be allowed to perform the action if I was only given read-only access here.
Now sure, you can say that "upload to dirA" is a different verb than "upload to dirB". But this is just confusing terminology, it doesn't enlighten anything.
Ultimately medication is prescribed based on evidence from clinical trials, whether or not the mechanism of action is fully understood. SSRIs work to help with depression in clinical trials when compared to placebo, so they get prescribed.
To the extent that we can measure depression, SSRIs have been widely proven in gold standard phase III clinical trials to help with the treatment of major depression. What exactly is supposed to be lacking in the supported evidence?
I am pretty sure, though, of course, memory is highly fallible (and note that I was a kid back then, and didn't understand that well what those sounds or the blinking disk light actually meant).
> 20 years ago, Windows 98 had long been abandoned. At that time I had been running a Linux desktop for many years already.
20 years ago means the mid-to-late nineties. That's my position and I'm sticking with it /s
But I think it's undeniable that Linux in the 2000s was a massive pain for anyone but the most dedicated tinker, and even then only for pretty carefully chosen hardware. The Year of the Linux Desktop meme existed for a very clear reason. Virtually the entire PC user base, both Consumer and Corporate, was running Windows XP in the 2000s.
This makes 0 sense as presented here. The GPL explicitly distinguishes mere aggregation from combining in a way that makes it a larger program. Putting both the proprietary bootloader and the GPL OS on the same disk / in the same system makes 0 difference to whether the bootloader is covered by the GPL or not.
If this were true, then any phone, any PS5, any Linux laptop, and almost all consumer hardware would be in violation of the GPL (note that the wording quoted there is also part of the GPLv2, it's not GPLv3 specific).
Or do you mean manufacturing your own printer that is a copy of theirs with 10mm extra build volume in each direction, and with your own software? That may be illegal if they have any patents, but otherwise should probably be ok, and would of course not have anything to do with their software - but you still couldn't take the software from one of their printers and running it on yours, most likely.
This would be a vindication of the SFC's position, which holds that what people commonly call "TiVoization" was in fact already not allowed by the GPLv2, and that the GPLv3 makes a slightly more complicated requirement.
Specifically, the SFC generally claims that the GPLv2 doesn't allow you to distribute hardware running GPLv2 software on it and then refuse to allow customers to modify or update this software themselves*.
Instead, they claim that what TiVo actually did that necessitated the creation of the GPLv3 is more complicated: you were perfectly well allowed to modify the Linux system on your TiVo box, BUT the proprietary TiVo software would thereafter refuse to run. Basically, you could either use the TiVo with only official TiVo software, OR you could use it as your own Linux PC, but NOT both.
According to the SFC, this is the only difference between GPLv2 and GPLv3 in this area - if the functionality of the product you received is allowed to be degraded intentionally because of modifications you make under your GPL rights. Linux with its GPLv2 license allows this, but much of the GNU utils, with the GPLv3 license, don't at this time.
* unless the hardware itself is incapable of loading modified software, of course, such as the case where the software is burned into a ROM and no one can update it.
The reason why it is very relevant is that, in the way we have unfortunately structured our economy, the amount of work you have to do to be able to eat and enjoy your time will always expand to grow to at least force you to maintain (if not increase) your economic productivity. That is, if AI enables engineers to deliver 10x more features in the same unit of time, then their employers will expect them to deliver 10x more features to continue earning their current pay.
So, while the AI did, in principle, allow you to just reduce your work schedule while getting the same pay, as you're providing the same results in 1/10th of the time, the economic system does not - your previous work is instead simply worth less than it used to be. Assuming you're not happy to take a 90% pay cut, you'll have to continue spending 40+ hour weeks, just using AI as well now.
I never understand what people exactly mean by claims like this. I very vividly remember double clicking some executable, and then immediately hearing the HDD start to spin, and waiting with baited breath to see if it will spawn a window or silently fail, as programs on Windows 98 (the only option for personal computers at the time) often did.
So what exactly was snappy? Nothing that runs off a HDD is ever snappy.
So, if the product isn't selling any more expensive even though you're adding ~8 times more features, or if you're still getting paid for the full 40 hours even though you only really work 5, then economic productivity hasn't actually increased.
Are you using "seL4/Linux" in the style of "GNU/Linux"? Because then it should be "GNU/seL4" - that would describe an OS exposing the GNU core utilities on top of the seL4 kernel. There's no way to mix the Linux kernel with the seL4 kernel, other than using one to run VMs of the other.
Would something like this guarantee that no side-channels are possible on any architecture? Perhaps not, but it would still get you most of the way there.
The answer is not, and the result of 3 multiplied by m is 3m. Just like 3 multiplied by pi is 3pi; or, perhaps more accurately, you can view m as a kind of vector unit, and 3m as the scalar product. Of course, none of this is exactly matching - dimensions are different from irrationals, vectors, complex numbers, etc, they are mostly a thing of their own.
> What this gets you in the end is a type algebra, but that is also not exactly a new concept.
Sure, that's why I said specifically programming language types. I am aware that type theory has way more complex operations on types. I think some of these may even be expressible in Idris or Haskell + some appropriate extension. But in almost all programming languages, even ones like OCaml, SML, plain Haskell, Rust, C++ with template magic, Scala, F# and what have you, there is no way to specify that the result of multiplying two values of type A is of type "A * A", especially not in a way that then allows you specify that the division of a value of type "A * A" by A has type A. So types as exposed in any of the common programming languages are horrible for modelling dimensions as used in even high school physics.