Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

lancemantis posted:

i have bad news

Its basically impossible to prevent people from actively stealing your code and knowing they're stealing it. But making a lawyer say "we're not legally allowed to use this" is an 80% solution.

Adbot
ADBOT LOVES YOU

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

rotor posted:

Its basically impossible to prevent people from actively stealing your code and knowing they're stealing it. But making a lawyer say "we're not legally allowed to use this" is an 80% solution.

The problem is if the enforcement is "or we get sued" that does jack and/or poo poo for an individual

Progressive JPEG
Feb 19, 2003

Captain Foo posted:

The problem is if the enforcement is "or we get sued" that does jack and/or poo poo for an individual

there’s ambulance chasers for everything - if it’s a slam dunk case and you have no resources it’s possible to get someone to do it on commission

Progressive JPEG
Feb 19, 2003

I mean it’s not like busybox had a lot of money to kick the poo poo out of dozens of garbage hardware manufacturers, for example

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Progressive JPEG posted:

there’s ambulance chasers for everything - if it’s a slam dunk case and you have no resources it’s possible to get someone to do it on commission

imo there are no slam dunks in software law because there aren't enough judges or jurors who actually understand what the gently caress is going on

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Progressive JPEG posted:

I mean it’s not like busybox had a lot of money to kick the poo poo out of dozens of garbage hardware manufacturers, for example

though I'll admit I'm not that familiar with this

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

Captain Foo posted:

though I'll admit I'm not that familiar with this

yeah i'd like to hear more about this

Progressive JPEG
Feb 19, 2003

busybox is gpl licensed and hardware manufacturers were frequently not making available the busybox source for builds that they were distributing with their hardware, even after being contacted by busybox to fix it. it was usually real obvious by just looking at firmware upgrade blobs for the hardware in question

the following have all been owned by busybox, this is not a complete list:
- monsoon multimedia
- xterasys, high-gain antennas
- verizon
- bell microproducts, super micro
- best buy, samsung, westinghouse, jvc, western digital, bosch, phoebe micro, humax, comtrend, dobbs-stanford, versa, zyxel, astak, gci
- extreme networks

from reading up on it, sounds like they were usually settled out of court for a cash settlement

suffix
Jul 27, 2013

Wheeee!

rotor posted:

I think getting a good license up front is good but I think a clause that the author retains the right to deny use to anyone at any time is the only practical way to actually avoid having your code used for unethical purposes.

an ethical person would not use your library in their program, because while they too might want to control use of their code, they would not want you and other random people to be able to pull the rug on the people they grant use of their code to
the net effect is everyone mostly writes everything themselves, and any collaborative project gets denial-of-used to hell at the first falling out and has to be rewritten

suffix
Jul 27, 2013

Wheeee!
looking forward to choose between the entirely incompatible israel and palestine supporting tech stacks

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

suffix posted:

looking forward to choose between the entirely incompatible israel and palestine supporting tech stacks

this exists and the dividing line is called ITAR

Progressive JPEG
Feb 19, 2003

suffix posted:

an ethical person would not use your library in their program, because while they too might want to control use of their code, they would not want you and other random people to be able to pull the rug on the people they grant use of their code to
the net effect is everyone mostly writes everything themselves, and any collaborative project gets denial-of-used to hell at the first falling out and has to be rewritten

sounds like job security comrade

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

suffix posted:

an ethical person would not use your library in their program

if someone won't use my code because they're worried that I'd yank their rights to use my library because of their ethical stance then I think the system works.

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome
like i don't really think "lots of companies use my code" is a worthwhile goal

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

rotor posted:

if someone won't use my code because they're worried that I'd yank their rights to use my library because of their ethical stance then I think the system works.

A person who considers using your software doesn't know you or anything about you. From their perspective, you might turn around in a year's time and say, "I've just realised that people with green eyes are Beelzebub's children, and therefore since you have green eyes you are now forbidden to use my software". That is why nobody who is paying attention will use your software if you reserve in perpetuity the right to arbitrarily deny them access to it.

rotor posted:

like i don't really think "lots of companies use my code" is a worthwhile goal

There is an implicit assumption here that the only entities that might use your code are companies, not other individuals. While the existence of companies that might exploit your code may loom large in your consideration for good reason, the lack of availability of your code is at best an inconvenience to them. Does the lack of availability of your code to other individuals (amateur coders, say) matter to you at all?

Progressive JPEG
Feb 19, 2003

Hammerite posted:

Does the lack of availability of your code to other individuals (amateur coders, say) matter to you at all?

if they’re feeling that entitled to someone’s library or whatever then they should try going outside

Progressive JPEG
Feb 19, 2003

fwiw the earlier thing that I had relicensed is an end user product rather than a library so it’s really got no reason to need a particular license in order to be useful to people

the math is a bit different if you’re making a library, but making libraries is also a huge thankless pita where the best case scenario is a bunch of morons regularly demanding you reorder the cosmos for free in order to support their niche use cases

which is why I’m not writing libraries

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

Progressive JPEG posted:

if they’re feeling that entitled to someone’s library or whatever then they should try going outside

what a weird thing to say!

the issue is how rotor feels about it, not how anyone else feels about it. If rotor's attitude is that they can go gently caress themselves, then so be it! the question was whether that really is how they feel about it.

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
it’s true that most companies would look at these licenses and think “it’s not worth our time to maybe get sued over this”

but if they actually want to use the software, they will just ignore the ethics clauses because those elements are extremely non-justiciable and therefore legally might as well not exist in the license

MononcQc
May 29, 2007

At some point maintainers decided to change the license for the Erlang language from the EPL ("Erlang Public License", a rewrite of the MPL to please Swedish lawyers) to Apache2. What they did is found all the contributors since the 90s, tried to contact them all, had them sign an agreement (which pretty much everyone did).

What about the few people they couldn't contact or reach out? They felt they did enough to be fair to everyone, and if someone is truly unhappy they can sue Ericsson.

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
yeah the llvm relicensing has done something similar — with a few years less history, but probably more contributors — except they've been promising to do a black-box rewrite of anything sourced from someone they can't convince to relicense / assign copyright

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

Hammerite posted:

There is an implicit assumption here that the only entities that might use your code are companies, not other individuals. While the existence of companies that might exploit your code may loom large in your consideration for good reason, the lack of availability of your code is at best an inconvenience to them. Does the lack of availability of your code to other individuals (amateur coders, say) matter to you at all?

Yes but not nearly as much as preventing unethical use of it.

If these individuals think i may go crazy and deny the license to green-eyed people, they're free to do what individuals have always done: pirate it, duplicate it with trivial modifications, or (gasp) write their own.

Progressive JPEG
Feb 19, 2003

turns out AGPL has a huge loophole:

quote:

13. Remote Network Interaction...

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network ... an opportunity to receive the Corresponding Source of your version ...

loophole: if you leave the program as-is and just wrap it behind a shim or proxy that changes behavior or adds functionality then you’re good to go

turns out there’s a reason mongodb gave up on dual licensing with agpl and instead wrote their own license

meanwhile OSI, stewards of licenses that haven’t seen an update in at least a decade, pretend everything is fine

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat
yes lets all do what mongodb has, the database for idiots

Progressive JPEG
Feb 19, 2003

point being that the OSI is completely loving up the stated reason for their existence by ignoring any license that isn’t at least 20 years old

turns out the software development ecosystem has changed a fair bit in that time, and by ignoring modern problems in open software, OSI are effectively causing the very “license proliferation” that they claim to be so worried about

if they cared they’d just pick up and declare a “standard” license for all these developers who don’t want to get hosed by amazon

Progressive JPEG
Feb 19, 2003

reuse of open source code as depriving developers of experience, and depriving users of better rewrites of things:

quote:

Duplicating effort, not reusing work product, makes good software. Because duplicating effort, not reusing work product, makes good programmers. Technical progress is people progress. Openness makes software better if it makes programmers better.

Alas, the sensibilities of thoroughly developed coders often turn on duplication of effort as soon as it has worked its magic on them. Instead of ten implementations of an approach, each of which gets a different ninety percent of the way there, the engineering ideal, conceived top-down, craves a single, shared, golden reference standard. It advances that implementation in lock step with the validated state of the art. It eliminates the conditions—the crucial human conditions—that made itself possible.

Prevailing thought about open source reinforces this self-limiting reflex. Public development puts source code out there. Generous licenses permit reuse of what’s been found. Forks and self-governance facilitate improvement and maintenance, percolating new optimizations and approaches down to widely adopted projects. In this frame of mind, open source exists both for and because of reuse. Reuse is what software “wants”, and software gets what it wants. So the path to broad, free distribution was duly blazed, paved, and named. That’s “open source”, just as the universe ordered.

This rather closed view of openness privileges some aspects of what open practice is and does, while harshly downplaying and eliding others. For example, reuse-focused views of open software systematically undervalue open source code as something for “users” to read rather than to run, as a vector of education, as existence proofs for solutions to difficult problems rather than componentized embodiments of solutions. It undervalues the effect that imitation, reengineering, and straight-up cloning has on what ends up available to use. It mistakenly assumes that reuse can afford educational value on par with imitation, or that the benefit of imitation evaporates on graduation from a credible computer science curriculum.

Linux remains the obvious example of imitative bounty. No Unix, no Minix. No Minix, no Linux. No Linux, no Linus as we know him now. But Linux is almost thirty years old. Both before and since, we have seen a nearly constant cycle of reimplementation, imitation, and accretion in the form of new programming languages, frameworks, architectures, and talent.

Each upstart technology bidding to take the spotlight eventually comes under pressure to cover both the enduring standards and the hits of its immediate predecessor. Those gaps represent wide open windows of opportunity for new and less established programmers, who swoop in to port, reimplement, and adapt the “golden oldies” to the style, substance, and fashion of the aspiring new hotness. The experience envelops them, socializes them, and levels them up, even if they came to the work with substantial prior experience. Results flow from and contribute to the wave of popularity carrying both new system and early contributors to new notoriety and opportunity.

Ruby begat Rails, which remade web programming. Rails in turn begat Node, which self-consciously sought a blank slate, without blocking I/O baggage. But no sooner did the core of Node take shape than new began to imitate old, prolifically. Package management. Web server middleware. Test frameworks. Libraries. And so on. Countless new project identities, and countless personal reputations for very visible contribution, filled the gap, expanding to fill newly available space.

Rewriting, rather than reusing, frequently forces programmers into code they may have depended on for countless projects but never actually read or otherwise considered from the authors’ point of view. The naivete of the newcomer, together with the strong imperatives of the new platform, sets them on collision course with both the wisdom of prior coders, which they often helpfully lack, and the folly of the prior implementation’s assumptions and constraints, which they aren’t informed enough to impose on themselves.

Beginner mind works its magic, recreating afresh and refining in the process. As a side effect, it renders the mind beginner no more. Which prepares the cycle for another round of uninitiated, undisciplined, thoroughly rejuvenating newcomer energy. The cleaner, more distilled, more insightful prior art each generation leaves behind better nourishes the next.

Convicting this cycle for waste misses two crucial points.

First, riding this cycle is fun. It’s engrossing. It’s exciting. It lends to programming a sense of creativity and opportunity and novelty that reusing other folks’ work does not. Software isn’t capable of wanting anything, but programmers are. What programmers find fulfilling, we should expect to see a lot of.

More importantly as concerns open source, progress, from a programmer-centric view of programming, doesn’t lie in an taller heap of tools, bits, and pieces in the great programming tool shed in the sky. It lies in developing programmers who converse in a richer vocabulary of techniques and solutions, relieved of the heavier burden of inventing and implementing unguided, in unmapped territory.

Just as videos of skateboard tricks, calligraphy, guitar licks, woodworking projects, hair braids, and myriad other feats of craft and skill vastly accelerate progression in those endeavors, existence proofs for software methods and applications expand the well charted territory of programming. They raise the baseline. When you’ve seen it done, you know it can be done. And you know it’s a thing you can do. Wisdom’s a bit like a trap-door function in that way. It’s hard to get anywhere new in the first place. But once you get there, if you learn to teach the way, others can follow much more easily than you led.

In more colloquial terms, publicly available software—free or not, open or not, with source code or not—expands the boundaries of what programmers think “can’t be so hard”. Practically speaking, that thought is usually wrong. Great software looks simple from one point of view: the user’s. Don a different hat, see a very different picture.

But in an equally practical sense, “can’t be so hard” hubris is usually correct. The time frame and context have changed. Freed of uncertainty about whether it can be done, the coder faces a purer, smaller, more tractable challenge. Starting with given knowledge of a variation that worked, without the noise of all the prior iterations that didn’t, bestows an enormous head start. Maintenance, customer relations, fundraising, and business don’t magically become easy or optional. But the starting point for the grind advances.

We say that possession is nine tenths of the law. Publication is nine tenths of open source. Psychologically, the biggest leap we take is deciding to work in the open, hushing our anxieties about embarrassing commits, throwaway designs, and dirty, uncommented, unrepentantly functional code that puts the lie to any lingering delusion of gobsmacking architectural genius.

Tactically, putting software online also surrenders the strongest form of commercial protection available—secrecy—forfeiting the fantasy of universal esteem and control. The Internet is not a person. It cannot and does not want. But tons of folks using the Internet want free stuff, test their limits, and discover what they can get away with. Which is a lot, until the money involved overwhelms enforcement costs.

The same Internet-enabled promiscuity that makes so many of us genre-hopping culture hoarders—not entirely unrelated to getting away with things on the Internet—can make us programming polyglots, too. The result isn’t specialization in any number of problems that only make sense and matter to other programmers—database guy, compiler girl, front-end cowboy, edit distance scholar—but a kind of diversely reinforced, adaptable competence applicable to practical, real-world problems, as well. The proposition isn’t either-or. We can and do have both.

In probing the biographies of the programmers I look up to—many of whom wouldn’t readily describe themselves as “programmers” at all—the pattern I cannot unsee is a marked rejection of software consumerism. At various points in their development, they all eschewed or simply ignored existing solutions, despite wide availability, accessibility, and low cost, for prolonged periods of what seem, myopically, like intensely wasteful exercises in reinventing the universe. There wasn’t anything obviously new to produce. But producing, not consuming, gave them joy. So they reproduced old until new came in range, often to no greater surprise than their own.

A harsh discipline: If you haven’t tried to build one yourself, don’t use it from anyone else. If you want to know what you’re doing, do it yourself. Don’t skip to reuse at the expense of the real opportunity a need or project represents. You’ll end up like collectors who never use their collectibles: investing ever more resources in containers and storage space, or paying someone else a lot of money to keep things neat, comprehensible, and enjoyable.

power botton
Nov 2, 2011

brb rolling my own crypto library

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

I think that dude is a nice developer who got poo poo on by lkml but I barely read it tbh

in a well actually
Jan 26, 2011

dude, you gotta end it on the rhyme

the abstraction you learned at is bad, I learned at is good

i think there’s value in understanding lower level but better programmer feel is not worth dealing with a bespoke http server in every loving program

MrMoo
Sep 14, 2000

is this the author of the npm package blue?

MononcQc
May 29, 2007

There's also value in diversity of components (i.e. not all the components have the same implementations, therefore not all the underlying bugs and issues are shared across all users), and there's no way to learn like reinventing for sure. I've been through that pattern in many projects and it's interesting to find that a rewrite from first principles lets you take new approaches that are cleaner in some general case, but then necessarily shittier for an edge case you hadn't considered. And the edge cases vary between various people's implementations, so the skeletons are all very varied and into different closets.

It's a kind of fun phenomenon.

MononcQc
May 29, 2007

I've been linked to a paper called Culpable Control and the Psychology of Blame, which tries to give an explanatory (more than prescriptive) take on how blame is generally attributed. Haven't gone through it at this point but it looks hella interesting and tries to borrow from both moral philosophy and legal frameworks in trying to unifying the vision.

Progressive JPEG
Feb 19, 2003

there's a v2.0 of the hippocratic license out now - its moved from being MIT with an additional clause tacked on to being a mix of mostly original terms mixed with a sprinkling of MIT boilerplate. it sounds like the license itself still needs work but it feels like its getting there

Progressive JPEG
Feb 19, 2003

also found the Parity License, which is copyleft except without any of the easily abused "distribution" , "linking", or "modified version" loopholes of GPL/AGPL. if you use software under this license then gently caress you, you have 30 days to publish it and everything you use it with. another neat thing is the license itself is pretty much plain english

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

Progressive JPEG posted:

also found the Parity License, which is copyleft except without any of the easily abused "distribution" , "linking", or "modified version" loopholes of GPL/AGPL. if you use software under this license then gently caress you, you have 30 days to publish it and everything you use it with. another neat thing is the license itself is pretty much plain english

that "excuse" section sounds like it could be abused to hell and back

Progressive JPEG
Feb 19, 2003

carry on then posted:

that "excuse" section sounds like it could be abused to hell and back

eh it'd mean that nobody knows theyre using it (and nobody is snitching on them) so seems kinda like a tree falling in woods situation

and i imagine its better to lay out specific steps for resolving the violation than not

i also imagine 30 days is enough time for them to realize theyre hosed and to pull out their checkbook to pay for an exception

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat
i want some sort of villain license where the particular software can ONLY be used for evil

Arcteryx Anarchist
Sep 15, 2007

Fun Shoe
oh so raytheon license then

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

lancemantis posted:

oh so raytheon license then

lol

Adbot
ADBOT LOVES YOU

Progressive JPEG
Feb 19, 2003

hippocratic license now has a v2.1 and has moved quite a bit from its “mit plus a clause or two” origins

it’s might actually be getting into the territory of not necessarily being a poison pill for commercial use, adding a bit about “Hague Rules on Business and Human Rights Arbitration” for arbitrating disagreements

one interesting thing, that doesn’t really relate to the ethics bits, is: “Licensee must cause any modified versions of the Software to carry prominent notices stating that Licensee changed the Software.”

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply