LWN: Comments on "Kuhn: Copyleft Won't Solve All Problems, Just Some of Them" https://lwn.net/Articles/888453/ This is a special feed containing comments posted to the individual LWN article titled "Kuhn: Copyleft Won't Solve All Problems, Just Some of Them". en-us Mon, 20 Oct 2025 11:24:07 +0000 Mon, 20 Oct 2025 11:24:07 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/889769/ https://lwn.net/Articles/889769/ bkuhn <div class="FormattedComment"> I got so busy on another matter that I plum didn&#x27;t realize that my article had been linked here!<br> <p> <font class="QuotedText">&gt; Here&#x27;s a very quick and simple way to support Ukraine: hit the &quot;unsubscribe&quot; button as soon as you read something trying to make a direct connection between FOSS and the latest Russian invasion.</font><br> <p> As a bit of “behind the curtain”, I actually didn&#x27;t have anything about the war at all in the first three drafts of this essay. My colleagues convinced me, precisely *because* we were getting so many inquiries at Software Freedom Conservancy (including from the press) about “should FOSS licenses impose sanctions”, that I ultimately added that section in about the war.<br> <p> The question is often asked any time there is a particular bad action done with FOSS; my goal was to write an essay that gave a definitive answer to the question when it&#x27;s raised in all its different forms (IMO, of course, lots of folks disagree with these conclusions).<br> <p> On the point about D&amp;D alignments upthread: I think it is a good shorthand to think about copyleft as being a good strategy to stop the “lawful evil” from acting badly but it doesn&#x27;t do all that much to stop “chaotic evil” behavior. But do note that issue is just one of the arguments that I make as to why FOSS licenses are not a good place for dealing with software-unrelated ethical and moral issues.<br> <p> On mjg&#x27;s point about whether you could make a bad-behavior poison pill and the license might still be FaiF, I see where you&#x27;re going with that, but I generally think poison pills are tactically bad (even though GPLv3 let a few of them through). I think copyleft works best if the only rights in play are your rights in the software in front of you, and works combined with/based on it. But I don&#x27;t feel that way for ethical reasons; just tactics and coalition-building.<br> <p> Anyway, thank you all for this thread; there are a lot of interesting points made and I&#x27;ve made note of many of them as very useful and I will want to keep in mind (including many that I just don&#x27;t have time to respond to in detail right now). LWN comment threads on my articles always have the best signal-to-noise ratio and I greatly appreciate them!<br> </div> Thu, 31 Mar 2022 00:24:38 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/889068/ https://lwn.net/Articles/889068/ developer122 <div class="FormattedComment"> This also raises an important point: licences don&#x27;t have infinite value to trade on.<br> <p> At some point you&#x27;re demanding too much for the use of your code, and someone writes you out of the picture.<br> </div> Thu, 24 Mar 2022 06:14:50 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888949/ https://lwn.net/Articles/888949/ pizza <div class="FormattedComment"> That&#x27;s easy, just include the complete corresponding source code (and license text) in onboard storage. eg rom/flash/whatever. One can even stencil in &quot;contains GPL components, see within&quot; onto the side of said munition, for the ~2.5ms it will be visible before going all explode-y.<br> </div> Wed, 23 Mar 2022 03:26:00 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888928/ https://lwn.net/Articles/888928/ Wol <div class="FormattedComment"> In Russia at the moment, and in many other jurisdictions, use of Tor is illegal because it circumvents &quot;The Great Internet Firewall of Wherever&quot;. But this is exactly where people NEED Tor, partly to be able to separate truth from propaganda (although I&#x27;d hesitate to define the difference in *many* situations). Partly for their own personal safety! And probably for plenty of other reasons.<br> <p> So banning unlawful acts is denying access to free software, to people who really need it.<br> <p> Cheers,<br> Wol<br> </div> Tue, 22 Mar 2022 21:41:35 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888913/ https://lwn.net/Articles/888913/ MrWim <blockquote> FOSS also suffers from the real-world problem that, despite its high morals and "four freedoms", those freedoms are VALUELESS to the majority because they lack both the ability, skill, AND TIME (to say nothing of desire) to take advantage of them. Banging on about giving a teetotaller a free lifetime's supply of beer is not going to bring them freedom, it's going to alienate them. Banging on about giving the proles free access to source code is going to fall on deaf ears at best, and make enemies at worst.</blockquote> <p>Indeed, I think there’s a whole bunch of chat about the four freedoms in abstract, but very little actual <i>coordinated</i> work around making it practical to make use of those freedoms.</p> <p>I find it useful to think of it in terms of positive vs negative liberty. Negative liberty is about not having constraints. Positive liberty is the practical capacity to act. So much of free software philosophy concerns itself with negative liberty - not being constrained by software licences, without thinking much about how users can actually be <i>practically</i> empowered.</p> <p>I wrote a bit about a very specific way in which people could be better empowered to take advantage of software freedom one here: <a href="https://blog.williammanley.net/2020/05/25/unlock-software-freedom-one-by-using-better-tools.html">Unlock software freedom one by using better tools</a>.</p> Tue, 22 Mar 2022 19:55:38 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888765/ https://lwn.net/Articles/888765/ NYKevin <div class="FormattedComment"> It is intended as an admonition to courts, if for example someone gets charged with criminal copyright infringement for trying to circumvent your GPL&#x27;d DRM. You&#x27;re not a party to that case, and arguably the license doesn&#x27;t have any direct application as a result, but the defendant can use this clause to show that your intent was not to effectively control access to the copyrighted work, and therefore it doesn&#x27;t count as DRM within the definition in the statute.<br> <p> Whether a court buys that argument is another matter, of course.<br> </div> Tue, 22 Mar 2022 04:52:34 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888746/ https://lwn.net/Articles/888746/ Wol <div class="FormattedComment"> Okay. Just taking the first example I saw, the book store. Let&#x27;s quickly summarize the ERD.<br> <p> Publisher is Publisher.<br> <p> Book_author and Book_language are attributes of Book, so they would go in the same FILE (table).<br> <p> Author is author.<br> <p> In this case, I&#x27;d say Customer_address is an attribute of Customer rather than an entity in its own right, so both of them, together with address status, would go in the same FILE. I see here, the ERD disagrees with me. Likewise, I probably wouldn&#x27;t break Country out into its own FILE.<br> <p> Do I treat order_line as an entity (in which I case I would say it belongs in the sales ledger), or as an attribute of Order? I&#x27;ll treat it as an attribute of Order, so along with shipping_method, it belongs in the Order FILE. Looking at order_history and order_status, I think they belong in the same FILE, too.<br> <p> Note that if I&#x27;ve got a one-&gt;many relationship, I list all the sub-table fields in an ASSOCiation, and that tells Pick it is a &quot;table within a table&quot;.<br> <p> &quot;Some parts look simple. Others may not be so simple&quot;. I&#x27;m thinking the same about Pick ... :-)<br> <p> Note that I&#x27;m going to use the LIST command, not the SELECT. Under the hood, they&#x27;re pretty much the same (much like argc[0] makes the same executable do different things in Unix). But the LIST command actually outputs the data like SQL SELECT, the PICK SELECT just collects primary keys behind the scenes.<br> <p> LIST cust_order BY order_date order_date<br> <p> LIST cust_order COUNT order_date BY order_date BREAK.ON order_date<br> <p> It didn&#x27;t cross my mind that date might be a timestamp, not a date, but let&#x27;s create a calculated column that converts timestamp to date ... (The conversion code stands for Date, Day Month Year)<br> DATE = OCONV(order_date,&quot;DDMY&quot;). Rather than creating a new column, I could always just put that in the query with the EVAL keyword - I&#x27;ll use both variants in the next query ...<br> <p> LIST cust_order COUNT DATE BY EVAL(&#x27;OCONV(order_date,&quot;DDMY&quot;)) BREAK.ON DATE<br> <p> I almost never used EVAL and that stuff so I can&#x27;t remember the AS syntax, but it&#x27;s probably the same ...<br> <p> LIST cust_order COUNT DATE AS &quot;Orders&quot; BY DATE<br> <p> The next one REALLY shows the difference between Pick and Relational ...<br> <p> LIST cust_order COUNT DATE AS &quot;Orders&quot; COUNT book_id AS &quot;Books&quot; BY DATE BREAK.ON DATE<br> <p> Here I would have to experiment slightly. I think &quot;COUNT book_id&quot; works, but it might have to be SUM EVAL( DCOUNT( book_id, @VM)). The DCOUNT stuff counts the books per order - I could put that as a calculated field in the dictionary, if I wanted.<br> <p> And note that I am still only reading one row per cust_order - and not one per order plus one per book!<br> <p> LIST cust_order COUNT DATE AS &quot;Orders&quot; COUNT book_id AS &quot;Books&quot; SUM price AS &quot;Total Price&quot; BY DATE BREAK.ON DATE<br> <p> The next bit, the running total, makes me go OUCH! I really don&#x27;t have a clue how to handle it in the query language, but it&#x27;s pretty easy to do. Define a function RUN_AND_BREAK( var_to_sum, var_to_break) in BASIC. It just sums var_to_sum, and resets the count every time var_to_break changes. It stores all this in named common, so be careful!<br> <p> LIST cust_order COUNT DATE AS &quot;Orders&quot; COUNT book_id AS &quot;Books&quot; SUM price AS &quot;Total Price&quot; EVAL(SUBR(*RUN_AND_BREAK(DCOUNT(book_id, @VM),OCONV(DATE,&quot;DM&quot;)))) AS &quot;Running Total&quot; BY DATE BREAK.ON DATE<br> <p> As before, I can just create a virtual column RUNNING.TOTAL and put all that complicated mess in it :-)<br> <p> And I&#x27;ve just found the &quot;stored procedure&quot;. That makes me happy. Pick doesn&#x27;t have a LAG function, but now I&#x27;ve got SQL stored procedures, it makes me much happier writing PickBASIC functions. Unlike SQL however, I can make my custom LAG look back 7 days, not 7 rows ... But you&#x27;ll counter, quite fairly, that I&#x27;ve written custom code ...<br> <p> Now to explain ...<br> <p> Unlike SQL, I&#x27;m just scanning one table! So I can&#x27;t add an index to improve join performance :-) Unlike MySQL, however, I can create an index on almost any information in my FILE - I just need to create a virtual column and I can index it, so I could easily index month, for example, if I wanted - OCONV( order_date, &quot;DY4M2&quot;).<br> <p> The way I would optimise this, is to create an index on DATE. That way, when I order BY DATE, the LIST will start by scanning and sorting the index, then retrieving all the keys from the index in sorted order. So running the report is just doing a sequential scan of the cust_order FILE by pre-sorted id. So especially if I&#x27;m only reporting a small subset of a large file, the ONLY table I&#x27;ve had to scan in full is the date index. (And depending how that index is organised, most recent Picks use a btree I believe, and can just scan the keylist to retrieve a pointer to the index data.)<br> <p> And if I had split order_line out into its own FILE, I would have stored all the keys in the cust_order FILE, so at no point would I have had to scan the cust_order FILE, I would have just declared price as a TRANS in the cust_order FILE and Pick would have taken care of all the details, retrieving the data directly with a single disk hit.<br> <p> (Oh, and I didn&#x27;t add that Pick, for the most part, is order-insensitive. &quot;LIST cust_order BY DATE fields_to_list&quot; or &quot;LIST cust_order fields_to_list BY DATE&quot; Pick couldn&#x27;t care.)<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 23:34:43 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888747/ https://lwn.net/Articles/888747/ bjartur <div class="FormattedComment"> Since when have intelligence agencies been lawful?<br> </div> Mon, 21 Mar 2022 21:32:23 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888744/ https://lwn.net/Articles/888744/ bpearlmutter <div class="FormattedComment"> The *real* question is whether it counts as distribution when someone fires a smart munition or missile running GNU GPLed code at you, and if so, what forms the offer for source code can take in order to remain compliant.<br> </div> Mon, 21 Mar 2022 21:13:29 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888738/ https://lwn.net/Articles/888738/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; This is probably harder than reasoning about the performance of something written in C -- but the latter&#x27;s performance isn&#x27;t going to respond to the data being processed and improve over time, no matter what you do.</font><br> <p> You&#x27;re missing the elephant in the room. Can you improve the performance of a Huffman Coder written in C? Not speed, but compression? Can you improve the performance of a fridge that is already capable of reaching 1K? If your rocket is already doing 0.9c, can you make it go any faster?<br> <p> Instead of c, the speed of light, the *maximum* *possible* speed attainable under our understanding of Physics, let&#x27;s define I - the speed of information - the maximum speed possible for a database to transfer information from OS to application.<br> <p> As I&#x27;m sure you&#x27;ll admit, a completely naive unoptimised FNF database is hopelesly inefficient, and that hopelessness grows with the size of the database. That&#x27;s part of your frustration with &quot;why can&#x27;t the optimiser do any better?&quot;. Running at pedestrian, Newtonian speeds, there is absolutely oodles of room for improvement with an optimiser.<br> <p> But that&#x27;s why I did that Gedanken experiment. Go back and look at it. Pick achieves a near-naive speed of 0.95I ! Yep, as programmer I need to pre-define the indexes to assist my queries, but that&#x27;s not hard. (Define indices for your relational database - I won&#x27;t object :-)<br> <p> There&#x27;s just no point having a Pick optimiser - there is no headroom whatsoever to make it worth it. You said we can&#x27;t do complex queries - well if you want to do it in SQL, I could run my Pick query, retrieve the *exact* dataset you&#x27;re looking for, pass it through my SQL layer, and sit back and relax before your SQL Optimiser has even worked out where to start.<br> <p> Please, DON&#x27;T compare Pick to other databases. Compare it to Information Theory. You can&#x27;t cool a fridge below 0K. You can&#x27;t accelerate a rocket beyond c. You can&#x27;t accelerate a database beyond I.<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 20:46:59 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888733/ https://lwn.net/Articles/888733/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; Then please. Did you see my Gedanken experiment where - was it mpr22 - gave me a typical query of his?</font><br> <p> Try examples from, e.g. here: <a href="https://www.databasestar.com/complex-sql-query-example/#ftoc-heading-15">https://www.databasestar.com/complex-sql-query-example/#f...</a><br> <p> I&#x27;ve seen analytic queries with dozens of joins, but extracting these kinds of schemas is impractical.<br> </div> Mon, 21 Mar 2022 19:42:43 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888722/ https://lwn.net/Articles/888722/ mat2 <div class="FormattedComment"> The problem is that prudent people often disagree on what is morally permissible and what is not. So a &quot;no evil&quot; clause in a license will appear very vague to the court and it will be difficult to enforce it if at all possible. It will not be known whose definition of evil should be used in edge cases: whether that of the author, of the distributor, of the user, of the judge or of population polls. The author may also change their mind or say so to the court to change their interpretation of &quot;evil&quot; many years after the release date of the software. IANAL, but it is possible that clauses with very imprecise definitions are legally void (I think I have read something like this somewhere).<br> <p> Vague laws have many drawbacks: their subjects will not know what is forbidden and how they should behave - so they are avoided where possible. Also, vague contracts are a source of problems and frequently invite litigation. So we should avoid vague licenses.<br> <p> Law is not a good definition of what is morally wrong and what is morally right. It is easy to come up with examples of evil laws and also of bad deeds that are completely legal. Many proprietary computer programs have a license that forbids use of that software to do something illegal. It could have been easy to add such a clause to licenses like GPL, but apparently for some important reasons it was not done.<br> <p> Some people want to add license clauses to forbid usage of their programs to perform some particular kind of &quot;evil&quot; deed, be it abortion services or perhaps anti-abortion campaigning, etc. The problem is that people will not agree on what &quot;evil&quot; deeds should be forbidden, so everyone will add their own to the list and it will be a mess. For more, see Richard&#x27;s Stallmans essay:<br> <a rel="nofollow" href="https://www.gnu.org/philosophy/programs-must-not-limit-freedom-to-run.html">https://www.gnu.org/philosophy/programs-must-not-limit-fr...</a><br> <p> Evil cannot be legislated away and even more so, successfully eradicated with a software license.<br> </div> Mon, 21 Mar 2022 19:23:21 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888721/ https://lwn.net/Articles/888721/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; &gt; You cannot benchmark a Mathematical Theorem.</font><br> <p> <font class="QuotedText">&gt; RDBMSes are not mathematical theorems. JIT-capable interpreters are not mathematical theorems, and it is perfectly possible and indeed routine to run experiments to determine the performance characteristics of specific programs on them.</font><br> <p> Then please. Did you see my Gedanken experiment where - was it mpr22 - gave me a typical query of his?<br> <p> Please take that same query, and do the same Gedanken experiment.<br> <p> <font class="QuotedText">&gt; This obviates the rest of what you wrote.</font><br> <p> I appreciate I come over as a bit of fanatic. As indeed I am. <br> <p> But you said you were frustrated that Relational *should* be able to take advantage of opportunities to speed up, and yet it didn&#x27;t. My Gedanken experiment shows clearly that there is *no* *room* available for Pick to speed up. I would love to see a similar experiment with a Relational database ...<br> <p> Show me you don&#x27;t have a closed mind. Take mpr22&#x27;s query. Tell me how many requests a Relational database will pass to the underlying OS to get the data. Now compare how many I needed with Pick (a full index scan of renewal dates, cherry-picking the ledger by customer id, then one read per ledger entry for the selected customers). Beat that with Relational!<br> <p> <font class="QuotedText">&gt; &gt; I stated that in twenty years of Pick programming, I&#x27;ve never met a complex Pick query stretching over more than a couple of lines. But in six months of SQL programming they&#x27;re pretty much all complex monsters. Either I&#x27;m a liar or that&#x27;s pretty damning! Either way, it&#x27;s evidence.</font><br> <p> <font class="QuotedText">&gt; To me this seems just as likely to be evidence that implementing complex stuff in Pick is so hard and the model is so inexpressive that nobody even tries, so the maximum complexity of stuff written in Pick is bounded above at a very low level. Nobody&#x27;s written word processors in assembly since WordStar, either (and indeed writing it in assembly is what eventually killed it). The maximum observed complexity of stuff written directly in raw assembly is fairly low, and that&#x27;s not any sort of indication that assembly is somehow massively more expressive and capable than higher-level languages.</font><br> <p> As I said before, converting the Pick data model to the Relational one is as simple as hiding the primary key, and restricting the dimensions to 1. It&#x27;s so easy, that every modern Pick database has a SQL layer built on it as a matter of course. But practitioners would much rather use the underlying Pick features, than ask Maxwell&#x27;s demon to put back all the information that converting from Pick to SQL lost. 90% of your complex SQL query is Maxwell&#x27;s demon hard at work.<br> <p> Nix. I don&#x27;t want to get into an argument with you. I respect you too much. PLEASE do that Gedanken experiment on mpr22&#x27;s query.<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 18:40:32 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888714/ https://lwn.net/Articles/888714/ floppus <div class="FormattedComment"> In the US:<br> <p> <font class="QuotedText">&gt; a technological measure “effectively controls access to a work” if the measure, in the ordinary course of its operation, requires the application of information, or a process or a treatment, with the authority of the copyright owner, to gain access to the work.</font><br> <p> If you wrote and distributed the program without the copyright holder&#x27;s authority, then the program (if it works at all) does not require the authority of the copyright holder to operate, therefore the program is not a &quot;technological measure that effectively controls access to&quot; that work.<br> <p> The program might be deemed to &quot;circumvent a technological measure&quot;, but it cannot *be* a technological measure, which is what the GPL is talking about.<br> <p> </div> Mon, 21 Mar 2022 16:52:42 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888709/ https://lwn.net/Articles/888709/ nix <div class="FormattedComment"> <font class="QuotedText">&gt; You cannot benchmark a Mathematical Theorem.</font><br> <p> RDBMSes are not mathematical theorems. JIT-capable interpreters are not mathematical theorems, and it is perfectly possible and indeed routine to run experiments to determine the performance characteristics of specific programs on them.<br> <p> This obviates the rest of what you wrote.<br> <p> <font class="QuotedText">&gt; I stated that in twenty years of Pick programming, I&#x27;ve never met a complex Pick query stretching over more than a couple of lines. But in six months of SQL programming they&#x27;re pretty much all complex monsters. Either I&#x27;m a liar or that&#x27;s pretty damning! Either way, it&#x27;s evidence.</font><br> <p> To me this seems just as likely to be evidence that implementing complex stuff in Pick is so hard and the model is so inexpressive that nobody even tries, so the maximum complexity of stuff written in Pick is bounded above at a very low level. Nobody&#x27;s written word processors in assembly since WordStar, either (and indeed writing it in assembly is what eventually killed it). The maximum observed complexity of stuff written directly in raw assembly is fairly low, and that&#x27;s not any sort of indication that assembly is somehow massively more expressive and capable than higher-level languages.<br> </div> Mon, 21 Mar 2022 15:47:24 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888708/ https://lwn.net/Articles/888708/ nix <div class="FormattedComment"> This is nonsense. Of *course* you *can* know specific underlying implementations -- and even if the source is unavailable you can run experiments to determine what the RDBMS is doing. What RDBMSes allow is for the implementations to improve things over time without requiring you to rewrite everything.<br> <p> This is exactly the same as the potential speedup you can get from writing something in a language with a runtime smart enough to do JIT-compiling versus one like C where that stuff isn&#x27;t provided (unless you implement it by writing such a language implementation in C). Determining the performance of Java code, or Lisp code, or JavaScript code isn&#x27;t suddenly impossible, and reasoning about it isn&#x27;t &quot;pure maths with no way to run experiments&quot;. It means that running experiments (or reasoning about the JITter) becomes *necessary* to make such judgements. This is probably harder than reasoning about the performance of something written in C -- but the latter&#x27;s performance isn&#x27;t going to respond to the data being processed and improve over time, no matter what you do.<br> </div> Mon, 21 Mar 2022 15:43:47 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888695/ https://lwn.net/Articles/888695/ Wol <div class="FormattedComment"> Oh. I forgot. Two (well sort of) benchmarks.<br> <p> I&#x27;m pretty certain the company was William Hill the Bookies. Six months of effort by consultants to get a complex query to run faster on Oracle / Twin Xeon 800 than the Pick / Pentium 90 system it was replacing ... ??????<br> <p> And an Oracle / Cache shootout - Oracle struggled to meet the 100K insertiion target speed, Cache breezed through 250K pretty much from installation.<br> <p> (Yes Cache isn&#x27;t Pick. But the data model is similar.)<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 14:57:23 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888694/ https://lwn.net/Articles/888694/ Wol <div class="FormattedComment"> I appreciate I tend to use Gedanken experiments much more than real ones, but my statement about the Second Law of Thermodynamics, Entropy, and comparing Sets to Matrices is a statement of Pure Maths.<br> <p> You cannot benchmark a Mathematical Theorem.<br> <p> I stated that in twenty years of Pick programming, I&#x27;ve never met a complex Pick query stretching over more than a couple of lines. But in six months of SQL programming they&#x27;re pretty much all complex monsters. Either I&#x27;m a liar or that&#x27;s pretty damning! Either way, it&#x27;s evidence.<br> <p> And it&#x27;s very noticeable when discussing performance, I&#x27;m pretty eager to do a Gedanken benchmark experiment - yet the response from the relational guys is ... crickets ... (take my word on this, but real experiments show Gedanken is accurate to about 5%).<br> <p> At the end of the day, if you&#x27;re going to fight conventional wisdom, OF COURSE you&#x27;re going to come over as a crank. It&#x27;s inevitable.<br> <p> The relational guys love to argue maths. I&#x27;m trying to counter with Maths. The Mathematics of Entropy says Pick is objectively a better model - no experiment required.<br> <p> You can&#x27;t counter a mathematical theorem with empirical facts - Newton&#x27;s Laws Of Motion are mathematically totally solid. It&#x27;s just that Reality said &quot;Einstein did a better job&quot;.<br> <p> Both the Pick and Relational models are theoretically sound - indeed if a Pickie doesn&#x27;t use relational analysis he&#x27;s an idiot. But the Second Law of Thermodynamics says that Pick is objectively more efficient. And all my career&#x27;s experience bears that out in spades.<br> <p> Please. Look at the MATHS. Look at the ENTROPY. Look at the evidence (yes you&#x27;ll initially have to trust my claims - verify them when you get the chance). Then see what you think.<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 14:51:31 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888658/ https://lwn.net/Articles/888658/ excors <div class="FormattedComment"> <font class="QuotedText">&gt; My blinding flash of inspiration, thanks to nix, was that the second law of thermodynamics proves that a set has far more entropy than a matrix. Therefore Pick MUST, as a matter of Physics, be a much more information-dense environment.</font><br> <font class="QuotedText">&gt; </font><br> <font class="QuotedText">&gt; So when Physics says you can sack two thirds of your relational guys and replace your system with Pick, surely you should take it seriously?</font><br> <p> I suspect people would take you more seriously if you tried to sound less like a total crank :-) . Working code and benchmarks and technical documentation would be much more convincing than reams of pseudoscientific nonsense.<br> </div> Mon, 21 Mar 2022 13:45:44 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888656/ https://lwn.net/Articles/888656/ sadoon <div class="FormattedComment"> Here&#x27;s a very possible scenario:<br> <p> Where I&#x27;m from, there are no intellectual propery laws, and there probably won&#x27;t ever be for the foreseeable future. (Fact)<br> <p> Say my government decides to do something you don&#x27;t like, whether it be as simple as taking a sociopolitical stance that you ABSOLUTELY hate, or going as far as invading a country that you love. (Hypothetical)<br> <p> Would forbidding people from my country from using your software by changing your license do you any good? Down here, everyone pirates movies, games, music, and software. The &quot;laws&quot; did not stop them.<br> <p> Some people are just so overwhelmed by their egos. <br> <p> &quot;But I *must* take action against them!&quot;<br> <p> It&#x27;s futile, it&#x27;s pathetic, and in the worst case, you might be woefully wrong and look back at yourself in disgust in a year or two because of how wrong you were. Believe me I&#x27;ve been there.<br> </div> Mon, 21 Mar 2022 12:04:24 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888651/ https://lwn.net/Articles/888651/ Wol <div class="FormattedComment"> I forgot. The other massive advantage going for Pick, is that the abstraction maps to the underlying hardware, enabling you to run scientific experiments.<br> <p> Because relational explicitly forbids you from knowing the actual implementation, it becomes pure maths with no way to run experiments and specify real-world requirements.<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 11:20:04 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888648/ https://lwn.net/Articles/888648/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; All the docs are aimed at people already using it ...</font><br> <p> I know I know. Which is why I&#x27;m so glad that we&#x27;ve got ScarletDME, even it it&#x27;s not quite there yet.<br> <p> Relational is First Normal Form with a load of tooling on top. Your fundamental database unit is a set of attributes with all the tooling to manage it.<br> <p> Pick is a matrix with a load of tooling on top. Your fundamental database unit is an n-dimensional array, with a primary key, and all the tooling to manage it.<br> <p> My blinding flash of inspiration, thanks to nix, was that the second law of thermodynamics proves that a set has far more entropy than a matrix. Therefore Pick MUST, as a matter of Physics, be a much more information-dense environment.<br> <p> So when Physics says you can sack two thirds of your relational guys and replace your system with Pick, surely you should take it seriously? The difficulty, as you point out, is that this comes with considerable &quot;opportunity cost&quot; - you have to invest money to save money, and if that doesn&#x27;t pay off in the short time you might not be around for the long term to take advantage of the savings.<br> <p> If you&#x27;re interested, join us on the mailing lists, and we&#x27;ll convert you :-)<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 11:16:39 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888645/ https://lwn.net/Articles/888645/ kleptog <div class="FormattedComment"> The issue is that databases and programming languages have network effects as strong as any social network. You could easily argue that Erlang is a better choice that Python for some software we run here. But competent Erlang programmers are even harder to find than competent Python programmers. At some point the business continuity risks of not being able to hire someone who can maintain the existing code outweighs the benefits of a hypothetically better language.<br> <p> As for Pick specifically, I&#x27;ve heard about it mostly here, but all the docs are aimed at people already using it. People write a lot about how it&#x27;s not relational, which is fine, but very little is written explain how it compares why any other NoSQL database. At first glance it looks a lot like a key/value store with some tooling, but I figure it must be more than that because otherwise people would be selling it that way.<br> <p> NoSQL is used extensively all over the place because it solves certain problems better. Use the right tool for the job and all that.<br> </div> Mon, 21 Mar 2022 11:05:34 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888641/ https://lwn.net/Articles/888641/ farnz <p>But if I implement DVD-CSS (or AACS, or other DRM scheme that has previously been deemed to be an "effective copy protection measure" by the courts) in GPLv3 code, purely for the purposes of obeying the terms of the scheme while implementing a usable media player, and then the DVD CCA or AACS LA argue in court that my implementation <em>is</em> "an effective protection measure", pointing at past precedent, what happens? <p>I simply state that I've implemented this because it's required to produce a decent optical media player for video discs. It's a third party claiming that, even though it's been implemented in GPLv3 code, it's still an effective protection measure. <p>FWIW, I predict that a court would take a narrow view of the GPLv3 language in this case - <em>I</em> can't argue that it's an effective protection measure, because I have stated in my licence terms that it is not, but that nobody else, not even someone who distributes a copy of the code under the GPLv3 licence, would be so restricted. Mon, 21 Mar 2022 10:06:11 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888628/ https://lwn.net/Articles/888628/ mjg59 <div class="FormattedComment"> I agree with your analysis of the second paragraph, but using it to interpret the first paragraph seems to render the first paragraph redundant, so I&#x27;m not convinced that&#x27;s the correct interpretation of the section overall.<br> </div> Mon, 21 Mar 2022 01:44:59 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888625/ https://lwn.net/Articles/888625/ mjw <div class="FormattedComment"> I am not a native English speaker and I am not a legal expert. But my interpretation, based on the next paragraph, is that someone who is Conveying copies of the work isn&#x27;t able to claim that the covered work is deemed an effective technological measure. Preventing you from restricting the users right by waive any legal power to forbid circumvention of technological measures.<br> <p> So it doesn&#x27;t restrict you from writing and distributing any covered code that others might deem an effective technological measure. It just says that you cannot use that to claim the same and use such laws to restrict the users rights.<br> </div> Mon, 21 Mar 2022 01:24:45 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888626/ https://lwn.net/Articles/888626/ Wol <div class="FormattedComment"> Whoops - replied to the wrong comment - it was meant to be a reply to mjg59 ...<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 01:15:48 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888624/ https://lwn.net/Articles/888624/ Wol <div class="FormattedComment"> I guess what happens is the Judge says &quot;you put that code in there - you forfeited the right to claim in court that it is &quot;an effective protection mechanism&quot; as far as your own work is concerned.&quot;.<br> <p> In a completely different scenario, I bought some stuff on-line, and after three attempts by me to pay them, they set their lawyers on me for the debt. I just quoted &quot;legal tender&quot; at them, said I had tried to pay them, and said that while I wasn&#x27;t sure of the status of a credit card as &quot;legal tender&quot;, the law was quite clear that if I offered said legal tender, their failure to accept it was *in law* an agreement by them not to take legal action. I never heard another word from them ...<br> <p> Cheers,<br> Wol<br> </div> Mon, 21 Mar 2022 01:07:11 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888615/ https://lwn.net/Articles/888615/ rlhamil <div class="FormattedComment"> Everyone pays for code (not custom, but amortizing the cost of existing code) every time they buy a product that contains code. What degree of future updates (if the hardware even allows them) they get without a support contract is another story. And I don&#x27;t hate on support contracts entirely - programmers need food (and shelter - can&#x27;t live ALL the time in a cubicle!) too, and software maintenance does not happen by magic. Nor do I hate on competent programmers in high-demand fields being paid rather well; there&#x27;s nothing like having a scarce in-demand skill to get generous compensation.<br> <p> If by contrast, there aren&#x27;t enough people coding and maintaining (whether out of the goodness of their hearts, or surviving via sponsors that depend on the code) some particular open source project, it gets stale.<br> <p> TANSTAAFL, one way or the other.<br> <p> </div> Sun, 20 Mar 2022 20:09:14 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888613/ https://lwn.net/Articles/888613/ mjg59 <div class="FormattedComment"> The text is &quot;No covered work shall be deemed part of an effective technological measure under any applicable law&quot;. But if the technology in question has already been deemed part of an effective technological measure (eg, CSS), how do I satisfy this?<br> </div> Sun, 20 Mar 2022 19:58:02 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888611/ https://lwn.net/Articles/888611/ NYKevin <div class="FormattedComment"> Well, that&#x27;s not your problem. The license requires *you* to refrain from trying to enforce those laws. It also instructs courts that the software should not be interpreted as an effective technological measure, but the court may or may not decide that this clause is effective. If the court says that this section is unenforceable, then it would probably get severed from the rest of the license.<br> </div> Sun, 20 Mar 2022 19:26:02 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888610/ https://lwn.net/Articles/888610/ mjg59 <div class="FormattedComment"> <font class="QuotedText">&gt; That&#x27;s true but has nothing to do with the GPL. You could substitute anything else for &quot;GPL v3&quot; in your statement.</font><br> <p> No? I can write something that&#x27;s an effective technological mechanism under GPLv2 - v3 explicitly says I can&#x27;t.<br> <p> <font class="QuotedText">&gt; It&#x27;s not a restriction on *using* the program</font><br> <p> Hm. This made me go back and re-read the FSF definitions, and I was slightly surprised that freedom 0 uses the word &quot;run&quot; rather than &quot;use&quot; - so I think I&#x27;m actually left claiming that this arguably violates freedom 3 rather than freedom 0, which I&#x27;ll admit weakens my argument somewhat.<br> </div> Sun, 20 Mar 2022 19:00:43 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888603/ https://lwn.net/Articles/888603/ floppus <div class="FormattedComment"> That&#x27;s true but has nothing to do with the GPL. You could substitute anything else for &quot;GPL v3&quot; in your statement.<br> <p> (Section 3 can be interpreted as a restriction on &quot;conveying&quot;, but it&#x27;s not in any way a restriction on Freedom 0. It&#x27;s not a restriction on *using* the program, because using the program is explicitly outside the scope of the GPL, and outside the scope of copyright law in the US.)<br> </div> Sun, 20 Mar 2022 13:25:25 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888595/ https://lwn.net/Articles/888595/ Wol <div class="FormattedComment"> Yup. This is the problem. &quot;this is the natural flow of the river&quot;. Except I would argue that the natural flow is what is pushing us to the &quot;dark side&quot;.<br> <p> Never mind whether there are or aren&#x27;t any village blacksmiths (I like that analogy), they CAN&#x27;T FIND ONE, and so over time they disappear. And Free Software is preaching to a smaller and smaller audience ...<br> <p> You&#x27;ve seen my rants on databases. So much Pick effort is wasted &quot;preaching to the converted&quot;. But I guess most of the people here know about Pick, even if they don&#x27;t use it! Problem is, fighting the &quot;if everybody uses it, it must be good&quot; mindset is VERY difficult. imho the design paradigm behind relational is just wrong. The same for Word. Excel is very good, but if all you have is a hammer every problem looks like a nail ...<br> <p> Changing the way - and what - people think is VERY hard. That&#x27;s why Open Source was formed - too many people think Free Software is going about it the wrong way.<br> <p> Cheers,<br> Wol<br> </div> Sun, 20 Mar 2022 10:33:27 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888582/ https://lwn.net/Articles/888582/ mjg59 <div class="FormattedComment"> If I reimplement the DVD CSS specification in GPL v3 code, and I do so in a way that implements the same controls that existing implementations do, as far as I can tell that would be considered an effective technological measure regardless of whether I think of it as one or not. I wouldn&#x27;t be the one using the DMCA anti-circumvention laws to prevent anyone else from modifying it - that&#x27;d be the DVD Copy Control Assn., Inc.<br> </div> Sun, 20 Mar 2022 03:39:16 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888580/ https://lwn.net/Articles/888580/ marcH <div class="FormattedComment"> Here&#x27;s a very quick and simple way to support Ukraine: hit the &quot;unsubscribe&quot; button as soon as you read something trying to make a direct connection between FOSS and the latest Russian invasion. Don&#x27;t waste time reading that sort of non-sense, obviously don&#x27;t waste even more time answering that sort of non-sense and spend instead your limited and precious time researching how you could actually make some difference.<br> <p> If you have a good, real-world relationship with your uncle, trying to convince him to stop reading lunatics on the Internet is useful. Keep trying to do that. On the other hand, answering random lunatics on the Internet is worse than a waste of time, it&#x27;s giving them credit. Fight misinformation by creating, supporting and promoting good information, never answer to the former directly.<br> <p> XKCD 386<br> </div> Sun, 20 Mar 2022 02:58:18 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888581/ https://lwn.net/Articles/888581/ NYKevin <div class="FormattedComment"> That is not what Section 3 says. Here is the text:<br> <p> <font class="QuotedText">&gt; No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.</font><br> <font class="QuotedText">&gt;</font><br> <font class="QuotedText">&gt; When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work&#x27;s users, your or third parties&#x27; legal rights to forbid circumvention of technological measures.</font><br> <p> You have every right to use GPL&#x27;d software as a form of DRM. You just can&#x27;t use laws such as the DMCA&#x27;s anti-circumvention prohibitions to defeat the GPL&#x27;s copyleft provisions.<br> <p> The resulting DRM is not very useful, of course, but that&#x27;s mostly because &quot;copylefted DRM&quot; doesn&#x27;t make sense in the first place.<br> </div> Sun, 20 Mar 2022 02:52:37 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888577/ https://lwn.net/Articles/888577/ mjg59 <div class="FormattedComment"> <font class="QuotedText">&gt; Can we?</font><br> <p> Section 3 prevents me from implementing anything that&#x27;s an effective technological protection mechanism. I&#x27;m fine with this, since permitting me to do so would allow me to restrict the freedom of my users, but it blocks a use case.<br> <p> <font class="QuotedText">&gt; What else, you can&#x27;t use it to collect taxes because if you collect taxes from someone they might not be able to afford to buy a more powerful computer that could be used to run more free software?</font><br> <p> Maybe! Like I said, it&#x27;s a pretty terrible license, but is it non-free?<br> </div> Sun, 20 Mar 2022 01:38:26 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888575/ https://lwn.net/Articles/888575/ milesrout <div class="FormattedComment"> <font class="QuotedText">&gt;But we can argue that GPL 3 restricts a small number of actual use cases in the name of ensuring that users retain the right to exercise the other freedoms</font><br> <p> Can we? If you think that point can be argued, why don&#x27;t you argue it? I strongly dislike this &quot;we can argue that [...]&quot; framing where it&#x27;s presented as obvious that we can argue something. But it&#x27;s not obvious at all.<br> <p> <font class="QuotedText">&gt;so I think a reasonable thought exercise is &quot;Would a license that forbid its use in restricting the ability for people to exercise their rights to use other free software&quot; be free software?</font><br> <p> No, because that violates freedom 0.<br> <p> <font class="QuotedText">&gt;Using such covered code in a weapon used to kill someone would prevent that person from exercising their rights to use other free software, and as such would be forbidden.</font><br> <p> What else, you can&#x27;t use it to collect taxes because if you collect taxes from someone they might not be able to afford to buy a more powerful computer that could be used to run more free software? You can&#x27;t use it as part of a property management business, because you might evict someone, and then that person will be spending their time looking for a new flat instead of using free software?<br> <p> What about a drop-in replacement for a piece of software, designed such that you can&#x27;t really use it *and* the thing it&#x27;s replacing. Is that preventing the user from using &#x27;other free software&#x27;? Way way too vague.<br> </div> Sun, 20 Mar 2022 01:24:21 +0000 Kuhn: Copyleft Won't Solve All Problems, Just Some of Them https://lwn.net/Articles/888561/ https://lwn.net/Articles/888561/ mjg59 <div class="FormattedComment"> These conversations usually end up pointing out that the &quot;ethical source&quot; licenses that exist at the moment impinge upon Freedom 0 (&quot;The freedom to run the program as you wish, for any purpose&quot;). But we can argue that GPL 3 restricts a small number of actual use cases in the name of ensuring that users retain the right to exercise the other freedoms, so I think a reasonable thought exercise is &quot;Would a license that forbid its use in restricting the ability for people to exercise their rights to use other free software&quot; be free software? Using such covered code in a weapon used to kill someone would prevent that person from exercising their rights to use other free software, and as such would be forbidden. As framed, I think this would be a pretty terrible license - it&#x27;s vague enough that any number of awful outcomes would ensue. But would it be non-free?<br> </div> Sat, 19 Mar 2022 21:22:43 +0000