@dgold after reading this https://lipu.dgold.eu/original-sin.html I think you might find interesting #HESSLA http://www.hacktivismo.com/about/hessla.php and my #HackingLicense http://www.tesio.it/documents/HACK.txt
I've found particularly interesting your insights about #individualism and #Capitalism in #FreeSoftware.
I reached a similar conclusion, but I noticed that one of the issue is that corporations have legal personhood, so that such individualism somehow works in their favour instead of the whole humanity.
Thus the restrictions to organizations in the Hacking License.
Do NOT use #Google #Analytics.
Why should I #trust you, your products or your #Web site if the first thing you do when I enter is to inform stranger of anything I do there?
If you use #GoogleAnalytics (or any other Google service that can track your customers) you don't deserve trust.
Nor #money.
Yes, for each bind/mount on a certain "mount rock", the kernel sends at least one Twalk to the bound server/device.
So, on average, it should be roughly O(n) in the number of bind/mounts.
But since the path is hierarchical and you could have to traverse several mount point before reaching the rock, I'd say the actual time complexity can be much bigger as the file's path grows.
This shouldn't be an issue for conventional mount points such as /bin (/cmd in #Jehanne) or /lib, thus O(n) should be an appropriate estimation (as long as each bound server/device doesn't do funny things).
Anyway, your project sounds cool but I can't get why immutable packages is relevant in this context.
How are you going to exploit this condition?
uhm... in the general case, it probably is pretty ugly.
But ideally, each package would contain few folders that require merge to be run.
In the perfect world, only $pkg/bin would need to be merged (#Plan9 and #Jehanne only support static linking).
$pkg/lib would only be required to be merged if you need to _build_ software based on such library.
If we consider scripting languages things becomes more convoluted (as @ekaitz_zarraga noticed with #Chibi) but still, the shape of a package and it's impact on the namespace should be based on few conventional directories.
My approach becomes ugly only if each package violate such conventions.
Or maybe I'm missing something?
"mount rock" is simply the name used in the kernel for the Chan* that correspond to the "old" in bind(2) http://man.cat-v.org/9front/2/bind
I suppose it's called "rock" because it's the fixed point on top of which you "build" your namespace.
Suppose you have two packages A and B each containing a d directory, that contains different files.
You might have the packages extracted in directories like this:
A/
A/d/
A/d/file1.rc
B/
B/d/
B/d/file2.rc
if you overlay B over A, you'll have into the mount point M
M/
M/d/
M/d/file2.rc
M/d/file1.rc
But you could get the same effect by binding A before M and then B/d/ before M/d/
This can results into ugly tree but looks like the simplest solution (to some extent).
What shall I name this new RISC-V assembler project of mine? (My current assembler, the one written in Python 2, is named simply 'a'.)
It will target the RV32I and RV64I instruction sets. (A, M, etc. extensions can be added later if/when needed.) I intend on emitting hunk-formatted output files. See http://kestrelcomputer.github.io/kestrel/2018/01/29/on-elf and http://kestrelcomputer.github.io/kestrel/2018/02/01/on-elf-2 for the reasons why.
I am partial to asm myself. But, I'd love your thoughts on the matter.
Thanks a lot!
I was considering to write something like that for #Jehanne's package manager.
But honestly I also like the obvious alternative: add to each package a importIntoNS.rc script that take care of
- importIntoNS dependencies
- recursively bind every clashing folder
The package manager would invoke the importIntoNS.rc of the packages you want to use (potentially using different versions in different rio windows/namespaces).
In the example at https://www.cs.cmu.edu/~412/history/2004S/chaokul.html the `b` packages would not bind b/ over the mount rock that already contains aa/ from the a/ package, but bind b/aa/ over mountrock/aa/.
What's your opinion on such design?
@Shamar
original author: https://www.cs.cmu.edu/~412/history/2004S/chaokul.html
found it here: https://9p.io/wiki/plan9/Contrib_index/index.html
divergefs-fix.tgz is the one that works
the way i actually found the sources was by grepping through /n/9pio/contrib
This one? www.cs.bell-labs.com/wiki/plan9/divergefs/
I can't find the sources... where did you get it?
Actually I didn't know about divergefs... did you write it yourself?
more progress towards #Plan9 packaging, because i'm tired of unsafe uninstall rules in mkfiles
https://git.sr.ht/~raingloom/package
Uhm... maybe I'm missing the overall vision.
Which Nix are you referring to?
This one? http://www.quanstro.net/plan9/nixterm/term.pdf
Or maybe this one? https://nixos.org/
Also, why you say that `bind` is not enough?
Interesting: given this addendum to such definition, I cannot think of any Nation implementing Capitalism.
It's an interesting argument, though.
It means that Capitalism is something that some animal do, but humans do not. 😉
If you can only have one possible state, you can't call it as "default".
By that definition, everything is capitalism because everything continuously exchanges resources.
If Capitalism was the default, you'd find it among apes. Instead Capitalism is a recent invention and it's always evolving towards stronger concentration of wealth.
But let's recap.
By now we know that wealth generation (by technology) doesn't prevent its concentration during distribution and how such concentration subtracts such wealth from being distributed (by definition).
Just like a dam at the river head, people concentrating wealth subtract to those who would get down the flow (think of Bezos and #Amazon employees).
Furthermore you accept that people are not rational agent: they are continuously manipulated through their biases (the "behavioral futures" that #Surveillance capitalist trade) to buy products they don't need (thus NOT generating wealth, but giving away their own wealth).
Also (as far as I can see in this thread) you don't contest the fact that corporation aren't rational either as they optimize one single scalar dimension, profit: the net wealth built by corporation that maximize profits is negative as soon as you take the externalities into account.
Now the point of a #UMW (Universal Maximum Wealth) is not to punish anyone for harming anyone else. And it's not even a way to turn irrational people into rational one! (for that we need education, with a strong focus on #History and #Informatics, see http://www.tesio.it/2019/06/03/what-is-informatics.html)
UMW is just a way to build a simple and effective incentive system designed balance #collaboration and #competition.
One the drive to accumulate more wealth is balanced by the need to increase the wealth of everybody else, corporations will have fewer and fewer reasons to fool people through #marketing.
So while people will stay as irrational as they already are, there will be no advantage to exploit their bias.
In that context, #AdamSmith's #trust would be possible again, raising the probability of actual wealth creation by rational trades.
Basically, in such framework Capitalism could probably work.
Now, you see all this is flawed, but you didn't explain (or I didn't understood) how.
Where did I talk about regulation?
Actually, I think Capitalism could work reasonably if we had a simple regulation world wide: an Universal Maximum Wealth defined within a finite ratio of the minimum actual wealth that the poorest person in the planet hold.
A 3x or 5x should do.
I mean: as greed as #Bezos can be, with such regultation, the only way to raise his own wealth would be to raise the poorest person wealth too.
Sure, #education is important.
Fundamental!
But I don't think we should just educate people to resist to external systematic pressure: we should educate them to design and build system that remove such pressure at all. 😉
Good points on healthcare.
As for
> people have the freedom to act responsibly or irresponsibly
that's plain wrong.
Not just because of context and cultural pressure: people always lack informations to do rational choices.
What you call "responsibility" is plain impossible, so much that, actually, my professor of Economics at the University explained us the concept of "Information Asymmetry" as a fundamental marketing tool: as long as you maximize the difference between what people know about a product and what vendors know about that same people, you can more easily rise the price (everything else unchanged) without reducing sells.
Indeed, now that I think about this, I recall that another way to state the fundamental assumptions of Capitalism is that information spread instantly.
Without perfect and symmetric information, you need to redefine "rational decision" to include (and factor out) growing amount of irrationality.