38 captures
16 May 2013 - 21 Mar 2025
Apr MAY Jun
20
2012 2013 2014
success
fail

About this capture

COLLECTED BY

Organization: Internet Archive

The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Collection: Wide Crawl started April 2013

Web wide crawl with initial seedlist and crawler configuration from April 2013.
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20130520210217/http://lwn.net/Articles/541981/
 
LWN.net Logo

Log in now

Create an account

Subscribe to LWN

Return to the Front page

LWN.net Weekly Edition for May 16, 2013

A look at the PyPy 2.0 release

PostgreSQL 9.3 beta: Federated databases and more

LWN.net Weekly Edition for May 9, 2013

(Nearly) full tickless operation in 3.10

SCALE: The life and times of the AGPL

ByNathan Willis
March 13, 2013

AtSCALE 11x in Los Angeles, Bradley Kuhn of the Software Freedom Conservancy presented a unique look at the peculiar origin of the Affero GPL (AGPL). The AGPL was created to solve the problem of application service providers (such as Web-delivered services) skirting copyleft while adhering to the letter of licenses like the GPL, but as Kuhn explained, it is not a perfect solution.

The history of AGPL has an unpleasant beginning, middle, and end, Kuhn said, but the community needs to understand it. Many people think of the AGPL in conjunction with the "so-called Application Service Provider loophole"—but it was not really a loophole at all. Rather, the authors of the GPLv2 did not foresee the dramatic takeoff of web applications—and that was not a failure, strictly speaking, since no one can foresee the future.

In the late 1980s, he noted, client-server applications were not yet the default, and in the early 1990s, client/server applications running over the Internet were still comparatively new. In addition, the entire "copyleft hack" that makes the GPL work is centered around distribution, as it functions in copyright law. To the creators of copyleft, making private modifications to a work has never required publishing one's changes, he said, and that is the right stance. Demanding publication in such cases would violate the user's privacy.

Nevertheless, when web applications took off, the copyleft community did recognize that web services represented a problem. In early 2001, someone at an event told Kuhn『I won’t release my web application code at all, because the GPL is the BSD license of the web.』 In other words, a service can be built on GPL code, but can incorporate changes that are never shared with the end user, because the end user does not download the software from the server. Henry Poole, who founded the web service company Allseer to assist nonprofits with fundraising, also understood how web applications inhibited user freedom, and observed that "we have no copyleft." Poole approached the Free Software Foundation (FSF) looking for a solution, which touched off the development of what became the AGPL.

Searching for an approach

Allseer eventually changed its name to Affero, after which the AGPL is named, but before that license was written, several other ideas to address the web application problem were tossed back and forth between Poole, Kuhn, and others. The first was the notion of『public performance,』which is a concept already well-established in copyright law. If running the software on a public web server is a public performance, then perhaps, the thinking went, a copyleft license's terms could specify that such public performances would require source distribution of the software.

The trouble with this approach is that "public performance" has never been defined for software, so relying on it would be somewhat unpredictable—as an undefined term, it would not be clear when it did and did not apply. Establishing a definition for『public performance』in software terms is a challenge in its own right, but without a definition for software public performance, it would be difficult to write a public performance clause into (for example) the GPL and guarantee that it was sufficiently strong to address the web application issue. Kuhn has long supported adding a public performance clause anyway, saying it would be at worst a "no op," but so far he has not persuaded anyone else.

The next idea floated was that of the Ouroboros, which in antiquity referred to a serpent eating its own tail, but in classic computer science terminology also meant a program that could generate its own source code as output. The idea is also found in programs known as quines, Kuhn said, although he only encountered the term later. Perhaps the GPL could add a clause requiring that the program be able to generate its source code as output, Kuhn thought. The GPLv2 already requires in §2(c) that an interactive program produce a copyright notice and information about obtaining the license. Thus, there was a precedent that the GPL can require adding a "feature" for the sole purpose of preserving software freedom.

The long and winding license development path

In September 2002, Kuhn proposed adding the『print your own source code』feature as §2(d) in a new revision of the GPL, which would then be published as version 2.2 (and would serve as Poole's license solution for Affero). Once the lawyers started actually drafting the language, however, they dropped the "computer-sciencey" focus of the print-your-own-source clause and replaced it with the AGPL's now-familiar "download the corresponding source code" feature requirement instead. Poole was happy with the change and incorporated it into the AGPLv1. The initial draft was "buggy," Kuhn said, with flaws such as specifying the use of HTTP, but it was released by the FSF, and was the first officially sanctioned fork of the GPL.

The GPLv2.2 (which could have incorporated the new Affero-style source code download clause) was never released, Kuhn said, even though Richard Stallman agreed to the release in 2003. The reasons the release was never made were mostly bad ones, Kuhn said, including Affero (the company) entering bankruptcy. But there was also internal division within the FSF team. Kuhn chose the "wrong fork," he said, and spent much of his time working on license enforcement actions technical work, which distracted him from other tasks. Meanwhile, other FSF people started working on the GPLv3, and the still-unreleased version 2.2 fell through the cracks.

Kuhn and Poole had both assumed that the Affero clause was safely part of the GPLv3, but those working on the license development project left it out. By the time he realized what had happened, Kuhn said, the first drafts of GPLv3 appeared, and the Affero clause was gone. Fortunately, however, Poole insisted on upgrading the AGPLv1, and AGPLv3 was written to maintain compatibility with GPLv3. AGPLv3 was not released until 2007, but in the interim Richard Fontana wrote a "transitional" AGPLv2 that projects could use to migrate from AGPLv1 to the freshly-minted AGPLv3. Regrettably, though, the release of AGPLv3 was made with what Kuhn described as a "whimper." A lot of factors—and people—contributed, but ultimately the upshot is that the Affero clause did not revolutionize web development as had been hoped.

The Dark Ages

In the time that elapsed between the Affero clause's first incarnation (in 2002) and the release of AGPLv3 (in 2007), Kuhn said, the computing landscape had changed considerably. Ruby on Rails was born, for example, launching a widely popular web development platform that had no ties to the GPL community. "AJAX"—which is now known simply as JavaScript, but at the time was revolutionary—became one of the most widely-adopted way to deliver services. Finally, he said, the possibility of venture–capital funding trained new start-ups to build their businesses on a『release everything but your secret sauce』model.

Open source had become a buzzword-compliance checkbox to tick, but the culture of web development did not pick copyleft licenses, opting instead largely for the MIT License and the three-clause BSD License. The result is what Kuhn called "trade secret software." It is not proprietary in the old sense of the word; since it runs on a server, it is not installed and the user never has any opportunity to get it.

The client side of the equation is no better; web services deliver what they call "minified" JavaScript: obfuscated code that is intentionally compressed. This sort of JavaScript should really be considered a compiled JavaScript binary, Kuhn said, since it is clearly not the "preferred form for modifying" the application. An example snippet he showed illustrated the style:

    try{function e(b){throw b;}var i=void 0,k=null;
    function aa(){return function(b){return b}}
    function m(){return function(){}}
    function ba(b){return function(a){this[b]=a}}
    function o(b){ return function(){return this[b]}}
    function p(b){return function(){return b}}var q;
    function da(b,a,c){b=b.split(".");c=c||ea;
    !(b[0]in c)&&c.execScript&&c.execScript("var "+b[0]);
    for(var d;b.length&&(d=b.shift());)
    !b.length&&s(a)?c[d]=a:c=c[d]?c[d]:c[d]={}}
    function fa(b,a){for(var c=b.split("."),d=a||ea,f;f=c.shift();)
which is not human-readable.

Microsoft understands the opportunity in this approach, he added, noting that proprietary JavaScript can be delivered to run even on an entirely free operating system. Today, the "trade secret" server side plus "compiled JavaScript" client side has become the norm, even with services that ostensibly are dedicated to software freedom, like the OpenStack infrastructure or the git-based GitHub and Bitbucket.

In addition to the non-free software deployment itself, Kuhn worries that software freedom advocates risk turning into a "cloistered elite" akin to monks in the Dark Ages. The monks were literate and preserved knowledge, but the masses outside the walls of the monastery suffered. Free software developers, too, can live comfortably in their own world as source code "haves" while the bulk of computer users remain source code "have-nots."

One hundred years out

Repairing such a bifurcation would be a colossal task. Among other factors, the rise of web application development represents a generational change, Kuhn said. How many of today's web developers have chased a bug from the top of the stack all the way down into the kernel? Many of them develop on Mac OS X, which is proprietary but is of very good quality (as opposed to Microsoft, he commented, which was never a long term threat since its software was always terrible...).

Furthermore, if few of today's web developers have chased a bug all the way down the stack, as he suspects, tomorrow's developers may not ever need to. There are so many layers underneath a web application framework that most web developers do not need to know what happens in the lowest layers. Ironically, the success of free software has contributed to this situation as well. Today, the best operating system software in the world is free, and any teenager out there can go download it and run it. Web developers can get "cool, fun jobs" without giving much thought to the OS layer.

Perhaps this shift was inevitable, Kuhn said, and even if GPLv2.2 had rolled out the Affero clause in 2002 and he had done the best possible advocacy, it would not have altered the situation. But the real question is what the software freedom community should do now.

For starters, he said, the community needs to be aware that the AGPL can be—and often is—abused. This is usually done through "up-selling" and license enforcement done with a profit motive, he said. MySQL AB (now owned by Oracle) is the most prominent example; because it holds the copyright to the MySQL code and offers it under both GPL and commercial proprietary licenses, it can pressure businesses into purchasing commercial proprietary licenses by telling them that their usage of the software violates the GPL, even if it does not. This technique is one of the most frequent uses of the AGPL (targeting web services), Kuhn said, and "it makes me sick," because it goes directly against the intent of the license authors.

But although using the AGPL for web applications does not prevent such abuses, it is still the best option. Preserving software freedom on the web demands more, however, including building more federated services. There are a few examples, he said, including Identi.ca and MediaGoblin, but the problem that such services face is the "Great Marketing Machine." When everybody else (such as Twitter and Flickr) deploys proprietary web services, the resulting marketing push is not something that licensing alone can overtake.

The upshot, Kuhn said, is that『we’re back to catching up to proprietary software,』just as GNU had to catch up to Unix in earlier decades. That game of catch-up took almost 20 years, he said, but then again an immediate solution is not critical. He is resigned to the fact that proprietary software will not disappear within his lifetime, he said, but he still wants to think about 50 or 100 years down the road.

Perhaps there were mistakes made in the creation and deployment of the Affero clause, but as Kuhn's talk illustrated, the job of protecting software freedom in web applications involves a number of discrete challenges. The AGPL is not a magic bullet, nor can it change today's web development culture, but the issues that it addresses are vital for the long term preservation of software freedom. The other wrinkle, of course, is that there are a wide range of opinions about what constitutes software freedom on the web. Some draw the line at whatever software runs on the user's local machine (i.e., the JavaScript components), others insist that public APIs and open access to data are what really matters. The position advocated by the FSF and by Kuhn is the most expansive, but because of it, developers now have another licensing option at their disposal.


(Log in to post comments)

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 8:24 UTC (Thu) by khim (subscriber, #9252) [Link]

It's funny that all these discussions are ignoring the position of software developer's (web developers here) even if they are supposedly do all that for their sake.

Microsoft may preach that GPL is scary, viral and awful as long as it wants but the fact remains: compliance is not a problem for Joe Average Developer. Either s/he uses binary offered by someone else (and then 3c of GPLv2 or 6d of GPLv3 is easy to satisfy) or it's program in a source form (and then 3a of GPLv2 or 6d of GPLv3 is more-or-less automatically satisfied). Most "normal" programs don't encourage you to change the source, extensions are done via some form of plugins.

But AGPL is a problem for Jor Average Web-Developer. Most server-side frameworks basically encourage changes and it's easy to embed many-many things in them which you don't want to give to just anyone (think LWN: how that "source code release" process is going?). This means that AGPL is quickly becoming boogeymen. Compare number of GPL projects and number of AGPL project. Then compare amount of article-described "up-selling" abuse. People learn to avoid AGPL (and often GPL since it looks similar).

The fact that existing web software quickly becomes quite a mess after deployment (because there are local modifications you can not easily upgrade to latest-and-greatest version and because it's not upgraded it contains plethora of well-known security holes) is bad for other reason but till this mess will not be fixed AGPL can not change the situation.

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 11:13 UTC (Thu) by IanKelling (subscriber, #89418) [Link]

Honestly this just sounds like FUD after thinking about it a minute.

Your overall argument seems to be that AGPL makes it harder to develop proprietary code for web developers, and that is obviously a problem! You seem completely oblivious that from the perspective of software freedom, the problem is almost exactly the opposite.

Also, plugins are in many/most cases under the terms of the GPL if the underlying program is GPL.

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 12:34 UTC (Thu) by mpr22 (subscriber, #60784) [Link]

My (admittedly quite literalist) reading of section 13 of the AGPL leads me to the belief that modifying an AGPL'd web server precludes allowing direct download of non-textual data via external links; any request for such data without a local referrer header would have to interpose some kind of annoying advertising page:

if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.

(I'm assuming "downloading a binary file via a manually clicked deep link from outside" is interaction. I am, of course, not a lawyer, and this is not legal advice.)

SCALE: The life and times of the AGPL

Posted Mar 17, 2013 10:59 UTC (Sun) by filipjoelsson (subscriber, #2622) [Link]

So, i'm a Drupal developer working for a small newspaper publisher. I have coded a custom theme and a custom subscription module, as well as a module containing asorted hacks (changing the weight of specific article sections under certain conditions, adding publishing date and section title between the boldfaced preface and the text body, really layout stuff - but better done in a module). None of these is general enough to be usefull to others (except possibly as example code, but IMHO it's a bit too involved for that too).

I'm pretty confident that there is not opening for an SQL injection there, but the stuff is not general enough to be usefull to others. What's the point for me to share it? I file bug reports and patches to Drupal and the modules I use - but wouldn't AGPL include my local theming work?

I don't think this is FUD. Forcing web devs to distribute local modifications looks like busy work to me. Of course I'd be better off with general solutions - but my employer can't afford the investment. I am pretty confident my story is a common one.

IMHO a lot of the webb stuff, including CMS, are comparable to layout programs. But noone is yelling that Scribus should add a source code link to every produced print, right?

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 13:04 UTC (Thu) by njwhite (subscriber, #51848) [Link]

> The fact that existing web software quickly becomes quite a mess after deployment (because there are local modifications you can not easily upgrade to latest-and-greatest version and because it's not upgraded it contains plethora of well-known security holes) is bad for other reason but till this mess will not be fixed AGPL can not change the situation.

This is an issue in the web programming world, it seems, indeed. Whether the sort of people who are so slapdash are the sort of people who would respect free software licenses is an interesting question. Frankly the loss of code modifications by people who are too incompetent to separate their code from the framework and configuration they use is probably not such a big deal ;)

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 20:30 UTC (Thu) by Max.Hyre (subscriber, #1054) [Link]

[A]ll these discussions are ignoring the position of software developer's (web developers here) even if they are supposedly do all that for their sake.

Be careful in your characterizations. `Open source' is for the developers; `Free Software' is for the users. I'm sure it's the latter that Mr. Kuhn is addressing.

I don't really believe in the user/developer divide.

Posted Mar 15, 2013 3:38 UTC (Fri) by bkuhn (subscriber, #58642) [Link]

I basically believe every user is a potential developer, and that every developer is a user of some other software that they never bother to read the source to. I don't really believe in the user/developer divide is nor should be as wide as we tend to believe it is.

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 10:02 UTC (Thu) by tcarrez (subscriber, #53314) [Link]

"Today, the "trade secret" server side plus "compiled JavaScript" client side has become the norm, even with services that ostensibly are dedicated to software freedom, like the OpenStack infrastructure or the git-based GitHub and Bitbucket."

Err... The OpenStack project infrastructure runs entirely on Apache-licensed code published on github: See https://github.com/openstack-infra -- No trade secret or JavaScript obfuscation involved.

It's actually one of the most open project infrastructure I know of, entirely driven by source code repositories with everyone being able to propose changes to it.

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 12:57 UTC (Thu) by njwhite (subscriber, #51848) [Link]

I think that quote referred rather to the "secret sauce" of adding extra modules, configuration, etc to the base install as a means of differentiating, and not sharing this with the base project. This is possible with web services in a way that it isn't with regular programs.

So the issue is not with OpenStack, but with the way its users differentiate their offerings.

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 16:54 UTC (Thu) by corvus (subscriber, #82) [Link]

That seems to be a reasonable interpretation of Kuhn's remark. However, I do still take issue with that remark: OpenStack should definitely not be lumped in with GitHub and BitBucket which are not at all FLOSS.

OpenStack is Apache licensed, and as such, you can extend it with proprietary modules if you choose (just as with the Apache HTTP server). However, the OpenStack community is very insistent that OpenStack should not become an open-core system. It is a complete set of FLOSS software components that are quite capable of running at scale straight from the upstream repos. Some of the largest contributors have an "upstream-first" attitude, with continuous deployments based on upstream increasingly popular.

I didn't say OpenStack and GitHub were precisely the same.

Posted Mar 15, 2013 3:36 UTC (Fri) by bkuhn (subscriber, #58642) [Link]

To be clear, it's true that I had OpenStack on the same slide as GitHub and BitBucket, and Nathan may have drawn more on what the slide says than what I said out loud during the talk. When I give that part of the talk, I point out clearly that OpenStack, is, itself, Apache-licensed Free Software, but has a growing number of proprietary or simply "undisclosed" forks. That situation is indeed different from GitHub and BitBucket in the details, but the general idea is the same: a Free Software core, but lots of proprietary add-ons for secret sauce.

I didn't say OpenStack and GitHub were precisely the same.

Posted Mar 15, 2013 16:31 UTC (Fri) by n8willis (editor, #43041) [Link]

It was clear that in both cases, the concept at hand was that there are companies out there building a web-service product that relies on a free software base (e.g., OpenStack or git) but in which the ultimate product itself is not available as free software to the end users; in that case, OpenStack is an example of the component, while Github and Bitbucket were examples of the final product.

Nate

I didn't say OpenStack and GitHub were precisely the same.

Posted Mar 16, 2013 16:12 UTC (Sat) by bkuhn (subscriber, #58642) [Link]

I think corvus has a point though: OpenStack has a non-profit that is producing a fully Free Software version, and that's what OpenStack itself is. Compare that to GitHub: Git itself *is* like OpenStack in that it's fully Free Software and is part of a non-profit (i.e, Conservancy), too, but GitHub produces the type of software I'm talking about.

I think the problem here is purely the naming: OpenStack proprietary/trade-secret forks/depoloyments aren't called OpenStack, whereas there's no ambiguity when you say "GitHub" what you mean (i.e., you don't mean Git).

I admit I need to be clearer about that point when I give the talk in the future.

SCALE: The life and times of the AGPL

Posted Mar 15, 2013 9:48 UTC (Fri) by njwhite (subscriber, #51848) [Link]

> the OpenStack community is very insistent that OpenStack should not become an open-core system. It is a complete set of FLOSS software components that are quite capable of running at scale straight from the upstream repos. Some of the largest contributors have an "upstream-first" attitude, with continuous deployments based on upstream increasingly popular.

While I don't have direct experience of OpenStack, this is what I've heard too, and is great news. Ultimately the license can only go so far in encouraging good behaviour; it's great when most users understand why software freedom and contributing upstream is important.

So perhaps OpenStack wasn't the best example to choose, though it sounds like bkuhn has heard otherwise (I am in no position to judge).

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 10:54 UTC (Thu) by IanKelling (subscriber, #89418) [Link]

The article needs a correction. The MySQL thing was with nonaffero gpl. And after that, some explanation of why the AGPL is sometimes preferred for proprietary relicensing schemes might be in order.

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 13:01 UTC (Thu) by njwhite (subscriber, #51848) [Link]

> The article needs a correction. The MySQL thing was with nonaffero gpl.

Clarification, perhaps, but it isn't incorrect. The MySQL model is referred to as "proprietary relicensing", and works by scaring people into buying a proprietary license by claiming that uses may infringe the license. It worked well for them, economically, and the AGPL has the unfortunate side-effect of allowing the same practises in the web space. Hopefully that makes things clearer?

I haven't actually seen anybody do this with the AGPL, but that's probably as I'm blessedly able to stay away from web programming for the most part - I expect bkuhn has examples.

SCALE: The life and times of the AGPL

Posted Mar 14, 2013 13:11 UTC (Thu) by pboddie (subscriber, #50784) [Link]

The article states that the MySQL business model exploited alleged GPL non-compliance, but the point being made is that other parties appear to be doing something similar with the AGPL, not that MySQL or Oracle did so with the AGPL.

I actually found the whole story of the GPL 2.2 very interesting, and it's unfortunate that at the very least the wider public weren't made aware of this potential (but obviously unavailable) licensing option.

Javascript

Posted Mar 14, 2013 15:24 UTC (Thu) by rfunk (subscriber, #4054) [Link]

It's worth noting that the Javascript obfuscation described here is most often done for the primary purpose of reducing the time it takes for the browser to download the code. For example, the version of jQuery I have here goes from 248k to 96k when "minified", reducing its part of the page load time by more than 60%.

On the other hand, there's also Javascript that's actually treated as object code, compiled from some other language into something that will run on the browser. The extreme case of this is code transformed by Emscripten into Javascript from anything that LLVM can compile (e.g. C or C++).

Javascript

Posted Mar 14, 2013 15:40 UTC (Thu) by serzan (subscriber, #8155) [Link]

Indeed, minified js is meant to reduce download time *and* is trivially reversible (eg. with UglifyJS).

Javascript

Posted Mar 14, 2013 16:59 UTC (Thu) by pboddie (subscriber, #50784) [Link]

The hilarious thing about the obsession with reducing resource sizes is that it often goes hand in hand with weighing down the average Web site with 20 different "parasite" resources, each providing things like "analytics", tracking, adverts, and even the actual JavaScript libraries that the site needs to "deliver its experience", so that the browser ends up hanging for ten seconds while today's bottleneck struggles to serve up JavaScript and other stuff that the offending site's developers were too cheap to host themselves (or too lazy to learn how to host themselves).

The Web has ended up as quite some distributed computing platform, where everyone ends up running programs for other people. It's just a shame that most of them are completely superfluous.

Javascript

Posted Mar 14, 2013 17:19 UTC (Thu) by rfunk (subscriber, #4054) [Link]

Without getting into what's superfluous or not, I'd like to point out that, quite often, sites will load resources from outside servers in order to *speed up* the load. That can work for a combination of reasons:

1. If you've already been to a site that loads the resource from the same place, it's already in your cache and your browser doesn't bother loading it again.
2. Browsers have a small limit of how many resources they'll load from a single place at once, so loading some of them from an outside server increases the parallelism of the load.
3. The outside server may use a distributed content delivery network, so that you'll get the resource from a closer server than you otherwise would,

Javascript

Posted Mar 15, 2013 13:11 UTC (Fri) by ibukanov (subscriber, #3942) [Link]

> minified js ... is trivially reversible

This is not true. Even if one forgets about stripped comments function and variable names in JS may provide essential clues to the programmer especially when programming in a function style with a lot of closures. In minified JS where the names are replaced with short 1-2 letters strings and functions are reordered to improve the level of compression with gzip the clues are gone and it could be very hard to understand the code even after pretty-printing it.

Minify vs Compression?

Posted Mar 15, 2013 16:04 UTC (Fri) by alex (subscriber, #1355) [Link]

Out of interest how much does the default gzip compression most web-servers apply to text reduce the size of jQuery? In effect minifying is just an obfuscating compression.

Minify vs Compression?

Posted Mar 15, 2013 16:14 UTC (Fri) by rfunk (subscriber, #4054) [Link]

I don't know if most web servers do compression by default; I've always seen it as an add-on, never already enabled out of the box.

But I just checked the same jQuery files with gzip... The 232k un-minified version compresses to 66k, while the 92k minified version compresses to 32k.

Minify vs Compression?

Posted Mar 15, 2013 16:25 UTC (Fri) by alex (subscriber, #1355) [Link]

I admit my sampling was rather unscientific being looking at Google and LWN headers, surprisingly the BBC front page isn't compressed at all (perhaps because some random old browser would barf).

However if sites are not enabling gzip they would get a bigger win by enabling gzip than by minifying their JavaScript although obviously if they do both they get the best bang-per-bandwidth bit.

Minify vs Compression?

Posted Mar 15, 2013 19:12 UTC (Fri) by dlang (✭ supporter ✭, #313) [Link]

enabling gzip with dynamic content adds a significant CPU load to the webservers. For a small site this may not matter, but for a large site, it's frequently cheaper to get the extra bandwith and send out the minified version uncompressed than to pay for the extra machines needed to enable gzip.

Minify vs Compression?

Posted Mar 18, 2013 16:05 UTC (Mon) by njwhite (subscriber, #51848) [Link]

But as this is regarding minification, we're talking about non-dynamic content anyway, right? So a site could (and many do) gzip their content just once.

Some frameworks offer on demand minification too (MediaWiki's ResourceLoader is the one I know), so technically minification can also be done for dynamic content, but as you say, it depends on where the bottlenecks are as to whether that's a wise move.

Javascript

Posted Mar 19, 2013 23:38 UTC (Tue) by bkuhn (subscriber, #58642) [Link]

And binary program distribution wasn't invented merely to obfuscate, but rather to make it so users didn't have to recompile all sources just to use a program. We already have a history of computing convenience, like Javascript minification, being used to impede software freedom. That's nothing new.

Clarification on the "time mispent"

Posted Mar 15, 2013 3:42 UTC (Fri) by bkuhn (subscriber, #58642) [Link]

> spent much of his time working on license enforcement actions

Actually, I don't regret any of the time I spent on license enforcement actions: quite the contrary! That's the one set of work I did during the period in question that had real value.

I also spent much of that period doing random development and sysadmin tasks: that was clearly a waste of time, a mistake, and a distraction for valuable work for Free Software.

I'm quite sure I mentioned the former, not the latter, in my SCALE talk.

Clarification on the "time misspent"

Posted Mar 15, 2013 3:57 UTC (Fri) by bkuhn (subscriber, #58642) [Link]

Er, s/latter/former/ there. I *didn't* mention license enforcement as time misspent in my talk.

Clarification on the "time mispent"

Posted Mar 15, 2013 16:21 UTC (Fri) by n8willis (editor, #43041) [Link]

No problem; I'd be happy to add a note clarifying that in the text. For what it's worth, I didn't get the impression from the talk that you regarded your time as mis-spent, per se, so much as overloaded.

Nate

Clarification on the "time mispent"

Posted Mar 16, 2013 16:15 UTC (Sat) by bkuhn (subscriber, #58642) [Link]

Yeah, I've always been overloaded, but I really did misspend some of my time during that period on things that weren't urgently needed for Free Software. I think copyleft enforcement, though, is something that remains urgently needed for the future of Free Software, and that it always has been so since I've been involved in the mid-1990s.

I spent time during the period in question just doing sysadmin work and writing useless IRC bots for my employer; that was a mistake and waste of time.

Some additional history

Posted Mar 15, 2013 3:43 UTC (Fri) by rfontana (subscriber, #52677) [Link]

> Kuhn and Poole had both assumed that the Affero clause was safely
> part of the GPLv3, but those working on the license development
> project left it out. By the time he realized what had happened, Kuhn
> said, the first drafts of GPLv3 appeared, and the Affero clause was
> gone.

To say the Affero clause was "gone" is correct but a bit
misleading. It was contemplated that some developers would wish to add
Affero-like conditions to their code, and originally an effort was
made to ensure that some such conditions would be GPLv3-compatible.

The first public draft of GPLv3 (January 2006) stated, in what was
then its 'License Compatibility' section, that the following category
of additional requirement would be compatible with GPLv3:

"[terms that] require that the work contain functioning facilities
that allow users to immediately obtain copies of its Complete
Corresponding Source Code."

The rationale document accompanying this draft of GPLv3 explained that
"This is intended to enable compatibility with licensing terms that,
for example, require modified versions of a program that interacts
with users through a network to preserve an opportunity for users to
request network transmission of the source code."

In response to some criticism, this clause was revised in GPLv3 Draft
2 (July 2006) to:

"terms that require, if a modified version of the material they cover
is a work intended to interact with users through a computer network,
that those users be able to obtain copies of the Corresponding Source
of the work through the same network session"

In GPLv3 Draft 3 (March 2007), this item was removed entirely from the
list of GPLv3-compatible additional requirements. Separately, the term
of art 'convey', which replaced GPLv2 'distribution', was clarified
thus:『Mere interaction with a user through a computer network, with
no transfer of a copy, is not conveying.』Finally, Draft 3 signalled
in a separate section that there would be a new, single authorized
version of the AGPL with which GPLv3 would be cross-compatible. Some
further changes were made in subsequent drafts and the new AGPL, later
dubbed the GNU AGPLv3, itself was drafted as a GPLv3 variant. The
removal of a *category* of GPLv3-compatible Affero clauses, and its
replacement with a single FSF-authorized successor to the original
AGPL, was a compromise solution explained in the GPLv3 Third
Discussion Draft Rationale, section 4.2. http://gplv3.fsf.org/gpl3-dd3-rationale.pdf

Some additional history

Posted Mar 15, 2013 3:52 UTC (Fri) by bkuhn (subscriber, #58642) [Link]

I don't think it's misleading: Both Henry Poole and I were take aback when we learned that an Affero clause in GPLv3 wasn't a fait accompli. I remind you that I was so busy doing the wrong things that I didn't even read the first discussion draft all the way through until months after its release (when DD2 came out). That's my own fault for allowing myself to be distracted by (in-retrospect pointless) tasks that I was working on at the time, but I never imagined the assurances I'd received from GPLv3's drafters of an Affero clause would need double-checking. I trusted the process, and the process let me down.

Some additional history

Posted Mar 15, 2013 5:37 UTC (Fri) by rfontana (subscriber, #52677) [Link]

Now wait a minute, bkuhn. Take a look at this historical record:
http://gplv3.fsf.org/comments/rt/readsay.html?filename=gp...

I remind you that *you* were "ratiodoc". While ratiodoc was just populating initial stet comments through references to the first Rationale Document, presumably you were conscious of what you were writing. Thus at some moment on January 16, 2006, you presumably were aware that there was no Affero clause in GPLv3 as such and that instead there was an Affero compatibility mechanism.

I was not ratiodoc

Posted Mar 15, 2013 16:17 UTC (Fri) by bkuhn (subscriber, #58642) [Link]

I was the manager of the contractor (Orion) who populated ratiodoc. It's not the same thing. He worked directly with Novalis, at least until Novalis left FSF.

I think you were ratiodoc

Posted Mar 15, 2013 18:11 UTC (Fri) by rfontana (subscriber, #52677) [Link]

I will just say that this is inconsistent with my recollection on both counts.

I think you were ratiodoc

Posted Mar 16, 2013 16:17 UTC (Sat) by bkuhn (subscriber, #58642) [Link]

I distinctly remember thinking at the time: "Wow, I wish I had time to actually read and study these comments instead of just helping Orion get them imported into the system".

Okay, maybe it doesn't matter whether you were ratiodoc

Posted Mar 16, 2013 18:07 UTC (Sat) by rfontana (subscriber, #52677) [Link]

But if inclusion of the Affero clause was so important to you, why didn't you bother to see whether it was there?

Okay, maybe it doesn't matter whether you were ratiodoc

Posted Mar 19, 2013 23:33 UTC (Tue) by bkuhn (subscriber, #58642) [Link]

Already explained. I was tricked into distraction.

SCALE: The life and times of the AGPL

Posted Mar 19, 2013 12:17 UTC (Tue) by ballombe (subscriber, #9523) [Link]

Regrettably, this article does not explain how the AGPL works, whether it restricts modification, why the FSF believes it is compatible with the 4 freedoms, what happen when the server hosting the source code is down, and what happens if you do not agree with the license.

This would help clearing misconceptions.

SCALE: The life and times of the AGPL

Posted Mar 19, 2013 23:35 UTC (Tue) by bkuhn (subscriber, #58642) [Link]

My talk was not a AGPL compliance methodology talk; it was a talk about community issues in adoption of the license. What you're asking for is material the would be proper subject matter for a compliance talk.

SCALE: The life and times of the AGPL

Posted Mar 22, 2013 10:09 UTC (Fri) by eduperez (guest, #11232) [Link]

Are configuration files considered source code? Some configuration files can contain regular expressions, or even little snippets of scripted code... Then, what about configuration files containing security secrets, such as private keys? It's not uncommon for PHP applications to store database credentials in a .php file, for example.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds