|
The GPL turned me off of anything GNU.
I use the MIT license for 99% of my stuff.
And that's trashy what they're doing. I'm glad nobody can take my public domain work (like my GLR parsing code) off CP and slap a copyright on it. If they tried someone could just find my work at CP. It sounds like Adam's work should be accessible. Can't you derive from that, and tell all of these copyright/license trolls to take a hike? That's what I would do.
Real programmers use butterflies
|
|
|
|
|
I used GPL-3 so that anyone who wants to keep their code private will have to ask for another license. My assumption is that they want to use my code for commercial purposes, in which case I want to be compensated.
If anyone knows of a better way to achieve this, I'm open to suggestions.
|
|
|
|
|
That's one way to do it.
I figure a copyright is enough for me, but I do not write my code samples with the notion that I will ever be compensated for them. If I did maybe I'd follow your lead.
I also am paranoid about putting my actual contact info out there.
Instead I have my brand (honey the codewitch) and I write articles and code under that name (for paid and free, it's my business as well)
Real programmers use butterflies
|
|
|
|
|
I don't think anyone would want the code in my articles, since they're usually simplified fragments or outright sketches. But since my GitHub license is GPL-3, I just use that for the articles.
Our residential address is also unpublished.
|
|
|
|
|
O/T: You were the one I was talking to earlier about an automatically generated assignment constructor in C++, right?
This may not be the cleanest way to do it but it's hassle free, and almost as short as an autoimplemented memberwise-copy version would be:
MyStruct(const MyStruct& rhs) { memcpy(this,&rhs,sizeof(MyStruct)); }
Real programmers use butterflies
|
|
|
|
|
memcpy ?! You'll be going to bed hungry tonight! But that's basically what
Struct(const Struct& that) = default;
does, though it's more paternalistic. If Struct owns no resources and its constructor has no side effects, go for it and revel in your naughtiness.
One thing to note is that a C++ copy constructor only invokes a base class constructor, not copy constructor, unless explicitly implemented to do otherwise.
I've now reached 🍷🍷🍷🍷, so you'd best find a proper authority lest I've led you astray!
|
|
|
|
|
I would only use it for structs whose types I could hypothetically place in a union - that is, trivial things.
Wait. are you saying
Struct(const Struct& that) = default;
Will compile? I misunderstood you earlier, if so. I thought you were saying that as a wish list item.
When was it added to the spec? There's so much to C++ if you stop using it for a few years you can miss out on features.
Real programmers use butterflies
|
|
|
|
|
Indeed! C++11, I believe. I don't use anything after that.
|
|
|
|
|
OMG you're right. I think I remember encountering it once and making a mental note of it, and then forgetting the mental note.
I love C++. I'm always learning new stuff. thanks.
Real programmers use butterflies
|
|
|
|
|
Greg Utas wrote: I don't use anything after that. Me either, although I was just porting some code last week to use std::filesystem[^] and that is extremely useful addition.
|
|
|
|
|
Ugh, you two. Years of .NET and here I am, rusty at C++ and C++ with all these new features to boot.
I'm glad I'm back in the fold, though clearly I have some catching up to do.
Real programmers use butterflies
|
|
|
|
|
You can now default any special member function:
- constructor
- destructor
- copy constructor
- move constructor
- copy operator
- move operator
EDIT: And so the Big 3 (destructor, copy constructor, copy operator)--the guideline being that if you have one, you probably need the others--became the Big 5. Not to be confused with the Big 5 in Cantonese...
modified 13-Dec-20 19:40pm.
|
|
|
|
|
honey the codewitch wrote: It sounds like Adam's work should be accessible. Can't you derive from that, and tell all of these copyright/license trolls to take a hike? That's what I would do. No, that license is worse than the GPL licence. I have enough experience in this area that I think I know what's going on here...
I suspect that Adam modified his project at a later date and added his license. Even though I am not a lawyer... I submitted over a dozen open source projects through the MSFT 'Source Code Compliance Team' and got them approved for inclusion in Windows 10. So I got to read all of those legal determinations.
There is no way LibIDN would have used that source code if the original work contained those particular paragraphs. Adam had to have added it at a later date.
I am just going to avoid it.
|
|
|
|
|
Bummer!
Real programmers use butterflies
|
|
|
|
|
You should take a look at the CP License, it's basically the same purpose as the MIT, but it adds a bit of protection for you.
Chris went through the whole license quagmire a few years ago and decided to create his own license[^] (with the help of a lawyer IIRC) to fit the whole purpose of Codeproject.
Chris's comparison for most open licenses is over here: Licenses[^]
With links to the actual license texts.
Wrong is evil and must be defeated. - Jeff Ello
Never stop dreaming - Freddie Kruger
|
|
|
|
|
Just FYI, from what I read it seems like CPOL isn't compatible with GNU GPL:
- So if you have a GNU GPL dependency it might be illegal to use a CPOL license on your project,
- and it might be illegal for anyone who uses a (viral) GNU GPL dependency to use your work under a CPOL license.
license compatibility - Can I use CodeProject code in a GPL project? - Open Source Stack Exchange[^]
Quote: CPOL is not an open source license according to the OSI definition. It has a clause which does not allow it to be used for any purpose as mandated by the GPL or MIT license:
Quote: You agree not to use the Work for illegal, immoral or improper purposes, or on pages containing illegal, immoral or improper material.
If that's true it makes CPOL more restrictive than BSD, can anybody weigh in on this? Was this intentional?
|
|
|
|
|
I think the best person to answer that is @chris-maunder
Wrong is evil and must be defeated. - Jeff Ello
Never stop dreaming - Freddie Kruger
|
|
|
|
|
Yes, it would be nice to have an official response.
As you might imagine it's quite a huge risk to leave this sort of thing up to chance. I hope the SE post is incorrect.
Maybe adding something to the license like the DUMB decoder did might help reassure people that CPOL can mix with GNU GPL, if it wasn't CPOL's intent to add breaking clauses:
dumb/LICENSE at 396caa4d31859045ccb5ef943fd430ca4026cce8 · kode54/dumb · GitHub[^]
Sadly there's not much room for "creativity" when it comes to compatibility with viral licenses. I can't afford the lawyers and I wouldn't know one who could answer this anyway (no precedent anywhere).
|
|
|
|
|
I wonder how immoral or improper would end getting defined in court. They're not the same as illegal.
|
|
|
|
|
Yes, it was intentional.
When the CPOL was created the legal climate around software was vague and, frankly, dangerous for developers. We were aware of cases against software developers who had given away code without any self-protection and we determined that it would be a disservice to our members not to offer them protection (and choice, obviously)
Our lawyers highlighted one case in particular where a developer was sued because their code was used for malicious purposes. This motivated us to put the "don't be bad" clause. Further, things like being clear about the jurisdiction can be the difference between a developer getting treated fairly and a developer getting hung drawn and quartered.
We're not a fan of GPL because while it's "open and free" in the sense you get to see the code and you can use it how you wish, you're not actually free to make proprietary extensions of the code. You add your own cleverness, do some amazing work using the code, and you MUST open it up to the world. That's not how the world works.
So the CPOL is about
1. Protecting our members who share code by buttoning down the many legal agreements that were out there
2. Ensuring other developers can use our members' code freely, and to innovate with that code commercially
3. To ensure the code was open, in the sense that the source code must be available to read
cheers
Chris Maunder
|
|
|
|
|
I understand, thanks for the response!
|
|
|
|
|
It seems to me if you use only the original code then only the original license applies. Any other derivations of it are then irrelevant to you and your use of it.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
Rick York wrote: It seems to me if you use only the original code then only the original license applies. No, that would be not be an option. When making a choice for licences you want to use something with legal precedent.
Btw, the best document I have ever read regarding choice of OSS licences is by the Department of Defense[^]. I can't find it but they use to go in depth on why you can't just take some random: "Anyone can use this!" type licence.
|
|
|
|
|
So....
it's licenses all the way down...
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
I avoid anything longer than a page; ergo, I use no "open source" code.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|