People might disagree strongly, but my recommendation for you is to look into lambda calculus for this.
There are two important concepts that can be generalized:
- Substitution, the method of renaming and replacing variables
- Abstraction, replacing a variable with another term (function) that can also serve as output
This should give you a more natural feel to concepts like parametrization or what it means that the solution to one function may be another function. Perhaps you might even look a bit into the simply typed lambda calculus which has given me yet more perspectives on the fundamentals of mathematics.
Thanks for the excellent share. Both the thesis and the blog behind it come at a perfect time as I am writing my own thesis on GAN-assisted anonymization of full-body movement data. Very interesting and well written dissertation.
Even that point is ridiculous. Ferris was released from the original author as "public domain" property. It is not a "gift" or "compromise" of the foundation, they would not be able to restrict Ferris' usage, even if they wanted to (and after reviewing their document, I am 100% they would love to)
The difference is that the R-word foundation goes above and beyond their (reasonable) interests of protecting their brand/identity. This is not about trying to fend off people impersonating as "Official Rust..." or "Rust Foundation ..." but tries to stop you from even having the _word_ "rust" or "cargo" in your domain name.
Also there is some ideology-driven nonsense which is impossible to enforce but that does not stop them from the attempt to treat their community condescendingly like that.
From Mozilla's trademark policy:
If you want to include all or part of a Mozilla trademark in a domain name, you have to receive written permission from Mozilla. People naturally associate domain names with organizations whose names sound similar. Almost any use of a Mozilla trademark in a domain name is likely to confuse consumers, thus running afoul of the overarching requirement that any use of a Mozilla trademark be non-confusing. If you would like to build a Mozilla, Firefox Internet browser or Thunderbird e-mail client promotional site for your region, we encourage you to join an existing official localization project.
From Node Foundation's trademark policy:
You need permission to register or use a domain name that contains a Node.js mark in it. Please don’t
register a domain that looks or sounds similar to a Node.js or includes a misspelled Node.js mark as that
can confuse community users
From Debian's trademark policy:
You cannot use Debian trademarks in a domain name, with or without commercial intent.
For the sake of the argument, let's imagine that you fork rust. You'd have to come up with another name for it right?
But since the name it's the only thing that is getting in the way with this new (draft) policy, you wouldn't really have to fork the language and the tooling etc. All you have to do is to just use this new made up name in place of rust (and similarly for cargo) and you've achieved independence with a fraction of the cost.
E.g.
Rust -> Crust
Cargo -> Embargo
"Hey, here's a quick Crust tutorial: check out this git repo and run: embargo build"
In the last few hours, I've been thinking about how much effort would it really be to fork it, Iceweasel style, and IMO even just forking, renaming would be a pretty significant effort (if done right).
Fork the web page, you cannot just replace Rust with ALTERNATIVE, because ALTERNATIVE is not used at npm, you don't have a Discord community, and you don't have books and videos, and no foundation. All those changes would need to be kept up-to-date.
You could also have a new file type, .altrs, while you still want to be able to use Rust's files. Same goes for tooling, supporting websites such as crates.io: you might want your own, but you also want all the tools to work with the Rust crates. With the new file type, you need people to know how to change their config to treat .altrs files as regular .rs files.
.. though I don't know how much of it would be really necessary if all you want is to not violate their new policy, so it's more of a thought experiment at this point.
I feel like a fool for learning - let alone advocating - Rust to this point. The "great resign" is merely one year ago and the foundation has learned nothing. It is reasonable for any organization to protect against misrepresentation, but this proposal is overshooting so far that I could not even take it serious at first. Some of my favorites:
- They try to trademark the words "Rust" and "Cargo" which are common words in the English language
- You can not use "rust" in your domain name(?!), course name, video name, whatever, unless approved by the foundation
- Trying to impose a "Rust Foundation" approved CoC to all on- and off-line communities or events revolving around the language (the language, not foundation!)
- All off-line events about Rust need to ban their participants from carrying firearms
- Overrule any existing fair-use rights by prohibiting any modification (other than scaling) to the logo
- You need to constantly state that you are not affiliated or endorsed by the Rust Foundation when talking about the language (e.g. you want to write a tutorial, book or even answer on Stack Overflow?)
Needless to say that most, if not all, of those rules will be impossible to enforce. The foundation can try by spending all their funds and energy to fight lawsuits because some kid in India used "Rust" in their domain name or a bunch of rednecks hold a conference with guns in their pockets, but that time and energy could be better used elsewhere.
This proposal shows perfectly everything that is wrong with Rust: The "Foundation" and language need to be separated completely. This board consists of some self-proclaimed experts with questionable backgrounds who are hindering adaption and alienate the community by living out yet another ideology-driven power trip. At this point it does not matter if the proposal gets passed, which I doubt, or undergoes a complete rewrite as the damage is already done and the foundation has shown their ugly face to the community. This is their third strike in a row and I doubt that the important steps towards industry adoption (like integration to the Linux kernel) will be unaffected - all thrown out of the window because someone on this board could not endure the idea of people hosting independent events about the language.
"comply with local health regulations". Do you know who is responsible for making sure that we comply with local health regulations? Local health authorities. Just like you don't need to say "killing people is not allowed at our events", you also don't need to say that we need to follow local regulations. If an event doesn't follow local health regulations, call local health authorities, they can enforce it much better than The Foundation.
Carrying firearms? Even though I can't find a legit reason for bringing firearms to the event, it's still not the responsibility of foundation 5 thousand miles away from me to decide this, let my state / country, and event host decide what is allowed.
Code of conducts are also just a waste of time. If someone wants to be an a-hole, good luck stopping them with "it's in the CoC that you must not say that". I don't need the CoC to notice bad behavior and the CoC gives you nothing useful for stopping real abuse / racism at events.
Oh I forgot to mention: my application is not very heavy on computation or storage, I want to use payload primarily to not mess up authentication and spend hours after hours writing CRUD methods
There are two important concepts that can be generalized: - Substitution, the method of renaming and replacing variables - Abstraction, replacing a variable with another term (function) that can also serve as output
This should give you a more natural feel to concepts like parametrization or what it means that the solution to one function may be another function. Perhaps you might even look a bit into the simply typed lambda calculus which has given me yet more perspectives on the fundamentals of mathematics.