Nice web design, but poor logic: Why OccupyGPL is wrong.

February 11th, 2015

Update 2015-02-12, ~12 p.m. CT: Eric Schultz just told me that the OccupyGPL site has suddenly started redirecting to choosealicense.com, within the last few hours! So my post here is already obsolete — the problem has solved itself. If anyone knows more about this, please leave a comment here. In the meantime, I’ve put a copy of the original text at the end of this post for reference.

Someone just pointed out OccupyGPL to me.

The authors of that site are trying to advocate for open source software licenses of the permissive variety as opposed to the copyleft variety — the GPL being the best-known example of the latter.

OccupyGPL’s logic is confused, however, and their conclusion doesn’t hold up.

They start by saying flat-out:

The GPL is not a free license. It restricts freedoms only to people it deems to be morally acceptable. Often there are people who do not fall inside this morally acceptable box, yet they do really have good intentions.

That makes no sense. There is a very specific, well-developed definition of “freedom” that is used by the free and open source software movement. The Free Software Foundation expresses it elegantly in a four-point definition, and the Open Source Initiative expresses it somewhat less elegantly (but no less clearly) in a ten-point definition, but it’s the same concept either way. That’s also the same definition of “freedom” used by Freedom Defined, by Creative Commons, and by virtually every other organization, including even governments (see here for one example), for deciding what constitutes free and open source software. And under this widely-used, extremely well-agreed-on definition of “freedom”, the GPL is a free license. I mean, it’s not even a close call: just look at the definition, look at the GPL, and see that the GPL meets the definition. QED.

What OccupyGPL doesn’t like is the GPL’s “share-alike” clause, the one that says if you share a GPL’d program with someone, even one to which you have made modifications (such modifications are automatically also covered by the GPL), then you have to offer that recipient the full source code under the GPL, so that the recipient has all the same freedoms you have.

In the strange world of OccupyGPL, that’s a “restriction”, I guess because it… restricts you from placing restrictions on someone else? But that’s as silly as saying that outlawing slavery reduces freedom, because it takes away some people’s freedom to own slaves. Hey, the analogy may be inflammatory, but the logic is the same, and it doesn’t make sense in either case. The freedom to take away others’ freedom is not a meaningful freedom to have — the proper word for that is not “freedom” but “power”.

An only slightly less silly argument offered by OccupyGPL is that the requirement to distribute source code (on request) along with your program could be an onerous burden, and that any license that places onerous burdens on the licensor is problematic. Except that the requirement to distribute source code is not onerous and by definition can never be onerous: you have the source code, and clearly you have a distribution mechanism that was sufficient to distribute the program itself, so you can just distribute the source code via that mechanism as well. The marginal cost for doing so is, basically, zero. Anyone who distributes GPL’d software can comply with the terms of the GPL without any significant extra effort. We have all been doing so for decades now. It’s a complete non-problem. A requirement to enable redistribution is not the same as a restriction on use, no matter how hard they try to paint it as such.

So that argument doesn’t really hold up either.

The third argument offered against the GPL by OccupyGPL is a strictly utilitarian one, but even at that it’s pretty weak. Quoting from their site:

Lets assume that there is a company that wants to use your open source library and integrate it into their proprietary program, they’re even willing to improve your library and release the improvements to the public so that the whole community benefits.

Unfortunately, at the end of the day, the company needs to ship a product so it’d like to keep their core closed source. The GPL outlaws this kind of interaction. Our good citizen, a company wants to release their patches to your library back to the community and yet the GPL is banning them from doing so! It’s not giving them freedom at all! Instead, the GPL is a different set of restrictions. It may be that you personally find the set of restrictions that the GPL offers more morally palatable than traditional closed source licenses, but it is not a free license. It does not grant freedom, it grants different restrictions.

Okay, so now we’re not talking about “more free” vs “less free” anymore (despite the non-sequitur that closes the second paragraph above, and the abuse of the word “banning” to mean something it plainly does not mean). We’re just talking about whether the GPL suits someone’s business model. But that’s a pretty short conversation: the GPL doesn’t suit everyone’s business model — specifically, it doesn’t suit business models that involve restrictive monopoly powers. On the other hand, it’s great for those whose businesses depend on preventing monopolies. For example, consider this alternative utilitarian scenario:

Lets assume that there is a company that wants to launch an online srevice based on your open source program. Their plan is to make proprietary improvements to the program, such that people who use their service and come to depend on those proprietary improvements, have no way to get the source code under an open source license from the company. Not only are those people increasingly locked-in to the proprietary company, but your own business suffers because you insist on giving users (and competitors) freedom.

Fortunately, you released your software the AGPL (a variant of the GPL and no doubt equally hated by the folks at OccupyGPL). This means that the other vendor can’t offer customers a version of your code with proprietary additions — instead, that vendor has to release their changes under the AGPL too. They can still offer the service, but now everyone’s freedom is supported, and we get true competition in a non-monopolistic market. May the best service provider win! It’s a good thing you didn’t use one of those “permissive” licenses, because that would have resulted people’s freedoms being taken away.

This is not some far-fetched scenario, by the way. This is the actual, real-world business justification used by many companies — including my own company — for publishing software under copyleft licenses. I’m not saying that OccupyGPL’s scenario is not realistic. It’s also perfectly realistic. It’s just not a very good argument for the GPL being bad. Copyleft licenses have a complex range of effects; to cherry-pick one particular effect and use it as the basis for an unsupportably broad argument is poor logic and not even very convincing rhetoric.

In short, it doesn’t make sense to say that copyleft licenses are “more free” or “less free” as compared to permissive licenses. Both types of license are fully free; they just differ in other respects. Those differences are worth discussing, and which license you use will depend on what your goals are, but nominalism and cherry-picked scenarios are not a contribution to that discussion nor a help to people trying to choose a license.



Original text of OccupyGPL.org, for reference:

 

This is Google’s cache of http://www.occupygpl.org/. It is a snapshot of the page as it appeared on Feb 10, 2015 14:53:17 GMT. The current page could have changed in the meantime. Learn more
Tip: To quickly find your search term on this page, press Ctrl+F or ?-F (Mac) and use the find bar.

 




The movement to encourage the usage of permissive open source licenses.

The Manifesto

The GPL is not a free license. It restricts freedoms only to people it
deems to be morally acceptable. Often there are people who do not fall inside this morally
acceptable box, yet they do really have good intentions.

Lets assume that there is a company that wants to use your open source library and integrate
it into their proprietary program, they’re even willing to improve your library and release the
improvements to the public so that the whole community benefits.
Unfortunately, at the end of the day, the company needs to ship a product so it’d like to
keep their core closed source. The GPL outlaws this kind of interaction. Our good citizen,
a company wants to release their patches to your library back to the community and yet the
GPL is banning them from doing so! It’s not giving them freedom at all! Instead, the GPL
is a different set of restrictions. It may be that you personally find the set of restrictions
that the GPL offers more morally palatable than traditional closed source licenses, but it is
not a free license. It does not grant freedom, it grants different restrictions.

The GPL is not a free license. It does not grant freedom, it grants different restrictions.

The GPL is too restrictive for most projects. Instead it’s a good idea to use a
TRULY OSS license, a permissive license. Doing so will not make you
vulnerable to companies trying to magically make your code closed source, as you will
continue to distribute it.
There is a significant gain from having more people involved in your project.
Even if these people are companies who want to develop proprietary solutions. A company using
your technology will increase the value of the project. A LOT OF contributions
to open source technologies are from companies using these projects. If you however restrict them
from using your open source project, they might develop their own one which may be open source
(Congratz! You just got another competitor!) or proprietary. Neither you nor the company do really
benefit from this situation. You do want more people using your technology! And they do want to use
and work on an existing project to save a lot of development time and possibly creating a new industry
standard.

Join the Fight!

Here are a few ways on how you can encourage the usage of permissive licenses.

Spread the Word!

Let people know about this site:

Prefer projects using a permissive license!

Use more projects which are licensed under a permissive license, e.g. Clang, node.js or jQuery.

(Re-)License your projects using a permissive license!

License your projects using a permissive license like the MIT, BSD or Apache2 license.
If you have existing non-permissive projects think about relicensing them. Please be aware that the other
contributors also need to agree to the relicensing.

Let library developers know that you want to use it under permissive terms.

You want to use a library but you don’t like the license? Try to open an issue and contact a maintainer
about a possible license change. Discussion is healthy!

Help new open source developer understand that the GPL isn’t the right license for everything

A lot of young open source developers license everything with GPL terms without even knowing
possible consequences. The popularity of GPL projects like Linux made the GPL to be a somewhat
standard choice. This isn’t good! A lot of open source projects would benefit more from a
permissive license. Create awareness, be awesome!

Permissive Licenses

Some popular Permissive licenses.

MIT License

A permissive license that is short and to the point. It lets
people do anything with your code with proper attribution and without
warranty.
License | TLDR; Legal

BSD 2-Clause License

A permissive license lets people do anything with your code with proper attribution and without warranty.
License | TLDR; Legal

BSD 3-Clause License

A permissive license lets people do anything with your code
with proper attribution and without warranty. With a Trademark clause.
License | TLDR; Legal

ISC License

The ISC license is functionally equivalent to the BSD
2-Clause and MIT licenses, removing some language that is no longer
necessary.
License | TLDR; Legal

Apache v2

A permissive license that also provides an express grant of patent rights from contributors to users.
License | TLDR; Legal

Frequently Asked Questions

Q: I don’t want others to close my code!

A: They can’t, your code still is open source. What did they close then? THEIR work
which just happens to be based on your open source code. If you don’t like this, then your
existing license may be a good fit after all.

Q: What is if they write a wrapper around my lib and sell it for $10.000?

A: Yes that could happen but it’s also a rather unlikely scenario. If all they’ve done
is a thin wrapper then you or someone else in the open source community is also capable
of making such a thin wrapper in no time. Then all you need do is undercut them
by $10.000 and a good chunk of freedom.

The more likely scenario is that a company takes your code and produces a large amount
of other code that just happens to use your lib at its core. The said company will sell
their code and their extensions for a large sum of money and they are perfectly entitled
to do so. It’s after all THEIR code.

Even this scenario is beneficial to you. Said company will likely find bugs and fix them.

Q: Open source projects can’t live without the restrictions the GPL offers!

A: Thats not true! Several of our most beloved open source projects are using permissive
licenses: Clang, LLVM, node.js, jquery.

Q: Whats with the name? “Occupy GPL” do you want to destroy the GPL? And all GPL projects?

A: No. Yes it may sound like this, especially thanks to the old really misleading
subtitle. We’ve choosen that name because it’s very aggressive and generates a lot of
attention. We think that the GPL isn’t a good license and it shouldn’t be used as much
as it is today in open source software. Thats an opinion. There is lots of cool software
licensed under the GPL which we’re using every day: Linux, Git, Blender and a lot more.
Kudos to all those awesome folks!

Q: You clearly have no idea what free software is about.

A: Maybe, but I’m more interested in open source software anyway (The FSF makes a distinction here).
I’m also not interested in politics. Just technology and how to improve it.
A nice quote from Linus Torvalds:

“That’s the point of open source – the ability to make the code better for your
particular needs, whoever the ‘your’ in question happens to be.”

Q: What about the LGPL? It seems to fit your problem.

A: Yes the LGPL is (in our humble opinion) a huge improvement over the GPL and somewhat
solves a lot of the problems I’ve mentioned. But it’s also way more complicated to use
then a permissive license and you still have the risk of doing copyright infringement
just by using the project the wrong way.

Q: Isn’t this a bit too aggressive? This site and all? GPL is cool, please don’t hate it

A: Yes, it’s aggressive but that was intentional :), we think that there is a problem
which needs to be tackled, for which one needs attention. If you’re hapy with everything
as it is, cool! Have a nice day!
If you however see a problem in

posts like this
you’re probably at the right place!

Q: What is the purpose of this site?

A: To encourage the usage of permissive open source licenses and create awareness that
the GPL isn’t the right license for every open source project.

Q: I HATE YOU, I HATE THIS, I’LL NOW MAKE MY OWN OCCUPY PERMISSIVE LICENSES SITE!

A: Cool. Feel free to fork this
page
. You can even relicense it under GPL terms if you want to. It’s MIT licensed after all.

We ? open source. Want to help with translation or fix a typo? Fork this website on Github! or contact us @OccupyGPL

Noel Taylor: A Scholar and a Gentleman.

January 15th, 2015

I gave my friend Noel Taylor (yes, the noted William Howard Taft scholar) a book as a New Year’s gift.

This was his response.

When you first presented me with “President Taft Is Stuck in the Bath”

Taft In The Bath (cover)

by Mac Barnett, I delighted over what I assumed would be a scholarly and well researched work that would share new insights into the life of one of our most misunderstood presidents. Lamentably, having now read the book cover to cover several times (an enterprise of only two to three minutes’ time) I have come to the unfortunate conclusion that historically speaking, Barnett is on very shaky ground. Although he notes correctly that Taft was our nation’s 27th president and accurately reports the first names of Taft’s wife and some of his cabinet members, most of the book is taken up with a graphic (literally!) realization of what is nearly universally regarded as an apocryphal tale.

I suppose the title should have given the game away, but I admit I expected more from Mr. Barnett, whose previous works such as “Billy Twitters and His Blue Whale Problem”

Billy Twitters And His Blue Whale Problem (cover)

seem substantially more grounded in fact than this latest work. As it stands, this purported history of a widely discredited story comes across at best as a children’s fairy tale, and at worst as a character assassination of the lowest order.

The real kicker though, is that despite all of these obvious shortcomings, Mr. Barnett has once again, and at the eleventh hour, managed to spirit away from me that recognition which I have chased in futility for over 20 years now. Namely, with “President Taft Is Stuck in the Bath”, Mr. Barnett has won the Bancroft Prize!

So I ask, just who the hell do I have to blow to get a Bancroft Prize in American History?

Rants.org is grateful to Prof. Taylor for permission to reprint his review here.

New York State Senate bill offers tax credit for open source development expenses.

January 8th, 2015

An interesting bill was just introduced in the New York State Senate: open.nysenate.gov/legislation/bill/S161-2015

AN ACT to amend the tax law, in relation to providing a tax credit to individuals for up to two hundred dollars of expenses related to the development and posting of an open source or free license program …

It’s good that it specifically cites the Open Source Initiative and the Free Software Foundation as arbiters of what constitutes an “open source or free license program”. Here’s the full text:

STATE OF NEW YORK

________________________________________________________________________

161

2015-2016

Regular Sessions

IN SENATE

(PREFILED)

January 7, 2015

___________

Introduced  by Sen. SQUADRON -- read twice and ordered printed, and when
  printed to be committed to the Committee on Investigations and Govern-
  ment Operations

AN ACT to amend the tax law, in relation to providing a  tax  credit  to
  individuals  for  up to two hundred dollars of expenses related to the
  development and posting of an open source or free license program

  THE PEOPLE OF THE STATE OF NEW YORK, REPRESENTED IN SENATE AND  ASSEM-
BLY, DO ENACT AS FOLLOWS:

  Section  1.    Section  606  of the tax law is amended by adding a new
subsection (ccc) to read as follows:

  (CCC) OPEN SOURCE OR FREE LICENSE CREDIT.  (1)  A  TAXPAYER  SHALL  BE
ALLOWED A CREDIT, TO BE COMPUTED AS PROVIDED IN THIS SUBSECTION, AGAINST
THE  TAX  IMPOSED  PURSUANT TO SECTION SIX HUNDRED ONE OF THIS PART. THE
AMOUNT OF  CREDIT  SHALL  EQUAL  UP  TO  TWENTY  PERCENT  OF  THE  TOTAL
OUT-OF-POCKET  EXPENSES  OF  THE  TAXPAYER  USED IN THE DEVELOPMENT OF A
PROGRAM THAT IS PROVIDED TO THE PUBLIC UNDER  AN  OPEN  SOURCE  OR  FREE
SOFTWARE LICENSE, UP TO A MAXIMUM OF TWO HUNDRED DOLLARS.

  (2)  FOR  THE PURPOSES OF THIS SUBSECTION, A PROGRAM SHALL QUALIFY FOR
THE CREDIT PROVIDED BY THIS SUBSECTION IF THE CODE FOR SUCH PROGRAM  HAS
BEEN RELEASED UNDER AN OPEN SOURCE LICENSE RECOGNIZED BY THE OPEN SOURCE
INITIATIVE,  OR  HAS  BEEN RELEASED UNDER A FREE SOFTWARE LICENSE RECOG-
NIZED BY THE FREE SOFTWARE FOUNDATION.

  (3) THIS SUBSECTION SHALL APPLY TO ANY INDIVIDUAL FOR ANY TAXABLE YEAR
ONLY IF SUCH INDIVIDUAL ELECTS TO HAVE THIS SECTION APPLY FOR SUCH TAXA-
BLE YEAR. AN ELECTION TO HAVE THIS SECTION APPLY MAY NOT BE MADE FOR ANY
TAXABLE YEAR IF SUCH ELECTION IS IN EFFECT WITH RESPECT TO SUCH INDIVID-
UAL FOR ANY OTHER TAXABLE YEAR AND PERTAINING TO THE SAME PROGRAM OR ANY
PORTION THEREOF.

  (4) IN NO EVENT SHALL THE  AMOUNT  OF  THE  CREDIT  PROVIDED  BY  THIS
SUBSECTION  EXCEED  THE TAXPAYER'S TAX FOR THE TAXABLE YEAR. HOWEVER, IF
THE AMOUNT OF CREDIT OTHERWISE ALLOWABLE PURSUANT TO THIS SUBSECTION FOR
ANY TAXABLE YEAR RESULTS IN SUCH EXCESS AMOUNT, ANY AMOUNT OF CREDIT NOT
DEDUCTIBLE IN SUCH TAXABLE YEAR MAY BE CARRIED  OVER  TO  THE  FOLLOWING
YEAR  OR YEARS AND MAY BE DEDUCTED FROM THE TAXPAYER'S TAX FOR SUCH YEAR
OR YEARS.

  S 2. This act shall take effect immediately and shall apply to taxable
years beginning on and after the first of January  next  succeeding  the
date on which it shall have become a law.

(I didn’t know New York did this stuff in ALL CAPS — I guess that makes it official!)

How hard is open source winning? This hard…

December 5th, 2014

How hard is open source winning? So hard that apparently it can be taken for granted now in contexts where formerly it would have gotten explicit mention.

A moment ago I happened to read this article at TechCrunch: CoreOS Calls Docker “Fundamentally Flawed,” Launches Its Own Container Runtime.

Now, I don’t know anything about the technical merits of the issue here — is Docker the greatest thing since sliced bread? Maybe; beats me. Or is CoreOS justified in saying that Docker has lost its way and that’s why CoreOS needed to launch their back-to-basics replacement project “Rocket”? Could be­! Who knows? You’d have to be pretty deep in to have an informed opinion here.

But what is remarkable is that at no point did the article’s author, Frederic Lardinois, feel it necessary to mention that Rocket is open source. He just took it for granted that you would take it for granted. Obviously, it would be insane for someone to try to replace Docker with anything that wasn’t open source. But in the past, it might not be obvious that this would be obvious. Now it is. Lardinois doesn’t have to say that Rocket is open source any more than he has to say that Rocket is software, or that it can run on the Linux kernel, because any reader would so expect it to be open source as to find explicit mention of that more distracting than informative. The very last thing in the article is a link to Rocket’s source code on GitHub, but Lardinois never actually bothers to say that it’s open source, because he doesn’t have to.

That’s winning pretty hard. When open source has faded into being a background assumption, then it’s no longer just technical infrastructure, it’s cultural infrastructure.

Fix for WordPress 4.1 front page “Not Found” error (from Stealth Publish plugin).

November 12th, 2014

This is a public service announcement for anyone else who runs WordPress straight from SVN trunk and found their site broken after upgrading recently (probably after svn update took their site across the WordPress 4.1 boundary), such that instead of showing recent posts on the front page, you would see only this message:

Not Found.

Sorry, but you are looking for something that isn’t here.

Meanwhile, in your site’s Apache HTTPD error log, you’d see something like this:

  [Wed Nov 12 10:11:43 2014] [error] [client 74.92.190.113]              \
  WordPress database error You have an error in your SQL syntax;         \
  check the manual that corresponds to your MySQL server version         \
  for the right syntax to use near 'EXISTS '' ) \n                       \
  OR \n ( mt1.meta_key = '_stealth-publish' AND CAST(mt1.meta_value' at  \
  line 2 for query SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts \
  LEFT JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id            \
  AND wp_postmeta.meta_key = '_stealth-publish' )  LEFT JOIN wp_postmeta \
  AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1                      \
  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'  \
  OR wp_posts.post_status = 'private') AND ( \n  ( wp_postmeta.post_id   \
  IS NULL AND CAST(wp_postmeta.meta_value AS CHAR) NOT EXISTS '' ) \n    \
  OR \n  ( mt1.meta_key = '_stealth-publish'                             \
  AND CAST(mt1.meta_value AS CHAR) != '1' )\n) GROUP BY wp_posts.ID      \
  ORDER BY wp_posts.post_date DESC LIMIT 0, 10 made by                   \
  require('wp-blog-header.php'), wp,                                     \
  WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts,       \
  referer: http://www.rants.org/wp-admin/customize.php?theme=kisk

The problem turned out to be an obsolete workaround in the stealth-publish plugin. This patch, which removes one line of code, fixed it for me:

  --- wp-content/plugins/stealth-publish/stealth-publish.php
  +++ wp-content/plugins/stealth-publish/stealth-publish.php
  @@ -154,7 +154,6 @@
                                          'relation' => 'OR',
                                          array(
                                                  'key'     => '_stealth-publish',
  -                                               'value'   => '', // This is needed to work around core bug #23268
                                                  'compare' => 'NOT EXISTS',
                                          ),
                                          array(

I haven’t analyzed this in depth, but here’s what I think is going on:

The workaround implemented by that line (that is, setting ‘value’ explicitly albeit only to the empty string, in order to get the right SQL result) is what’s recommended by WordPress bug #23268. However, that bug was fixed in changeset 27689, which (confusingly to those of us not accustomed to development involving multiple SVN trees, yikes) made it to http://core.svn.wordpress.org/trunk in r27528:

  ------------------------------------------------------------------------
  r27528 | wonderboymusic | 2014-03-24 14:57:15 -0500 (Mon, 24 Mar 2014) | 10 lines
  Changed paths:
     M /trunk/wp-includes/meta.php
  
  When using `meta_query` in a `WP_Query`, passing `NOT EXISTS` or `''`
  to `compare` should not require `value` to be set. The resulting SQL
  should then produce the appropriate `OR` clause for existence of
  non-existence after passing the query to the `$key_only_queries` stack
  internally.
  
  Adds unit tests.
  
  Props chrisguitarguy, for the original patch.
  Fixes #23268.
  
  
  Built from https://develop.svn.wordpress.org/trunk@27689
  
  ------------------------------------------------------------------------

Okay, so the bug was fixed in WordPress core, and when I updated, I got the fix.

Unfortunately, the stealth-publish plugin hasn’t gotten the memo yet. That plugin’s latest version is 2.4, and hasn’t been updated since January 2014 — a couple of months before the relevant WP core bugfix. And the workaround in the code is now not only unnecessary, but actually causes an SQL syntax error — which is probably reasonable, since passing a value doesn’t really make sense in a NOT EXISTS test. It’s just that anyone who was using the workaround needs to stop doing so immediately.

I hope that stealth-plugin is still being maintained by its author. It’s hard to tell right now because the stealth-publish home page is currently down for maintenance:

Temporarily down for maintenance. Check back later.

So I’m publishing the patch here, to save other people time.

Disabling the GNOME Workspace Switcher Popup (in GNOME 3.14 on Debian GNU/Linux).

October 11th, 2014

This post is a public service announcement for all those using GNOME 3.14 or higher (in my case on Debian GNU/Linux, although that detail probably doesn’t matter here).

I wanted to get rid of the workspace switcher popup. That’s the thing that looks like this and displays briefly whenever you switch workspaces:

GNOME workspace switcher popup

I do not know what that thing is for. It serves no purpose that I can see. When I go from one workspace to another, I am interested in the destination. Whether I moved conceptually “up” or “down” from another workspace to get there is utterly irrelevant — the popup is just visual noise on my screen, getting between me and wherever I was going. (And by the way, they’re not “up” and “down” in my mind anyway; they’re “left” and “right”. We’ll never understand each other, GNOME. We’re too different.)

A long time ago I disabled that popup, using Windsor Schmidt’s handy Disable Workspace Switcher Popup extension. I just put it into ~/.local/share/gnome-shell/extensions/disable-workspace-switcher-popup@github.com/, launched gnome-tweak-tool, went to the Extensions tab, enabled the new extension, restarted GNOME, built my own backhoe, and voilà, the workspace switcher popup stopped appearing. Or maybe it was the other order? I don’t know. It seems like an awfully complicated procedure, in retrospect, but anyway it worked.

Then recently, after I upgraded to GNOME 3.14, it stopped working — that is, the workspace switcher popup came back.

Here’s what I had to do to suppress it again:

Add “3.14” to the list of supported shell versions in ~/.local/share/gnome-shell/extensions/disable-workspace-switcher-popup@github.com/metadata.json. In other words, I edited this line, adding the “3.13” and “3.14” on the end:

"shell-version": ["3.0", "3.0.1", "3.0.2", "3.2", "3.6", "3.8", "3.10", "3.12", "3.13", "3.14"],

Then restart GNOME, run gnome-tweak-tool, etc.

Looks like I’m not the only person to have run into this problem. Oskari Saarenmaa opened pull request #6 for this — which I didn’t even see before I created basically the same patch in pull request #7, but my patch supports GNOME 3.13 as well, for whatever that’s worth. (Was GNOME 3.13 ever released? I don’t even know, but if it was, my PR will support it. Yay.)

Why this stuff (along with similar things like disabling window animations when switching workspaces) isn’t tweakable via mouse clicks starting from Settings, I don’t understand. I guess you can launch dconf-editor and gnome-tweak-tool, if you’re the kind of person who knows about such things, but GNOME users shouldn’t have to be the kind of person who knows about such things.

Anyway, here endeth the public service announcement. This is how you can disable the workspace switcher popup in GNOME 3.14. Got that, search engine indexes? Good.

Debian Installation: Getting Past the Grub Error.

September 9th, 2014

This post is for people who install Debian GNU/Linux and run into this error at the GRUB installation step:

  Executing 'grub-install /dev/sda' failed. 
  This is a fatal error ...

Solution: remove the USB stick from which you are installing Debian. Right now it’s /dev/sda and the target hard drive you’re trying to install to is /dev/sdb (during the installation process only). This has bitten me more than once.

Yes, seriously: the Debian installer apparently can’t figure out on its own that most likely the place you want to install the boot loader is on the huuuuuuuuge hard drive that you’ve been installing to all this time, not on the USB stick that you’ve been installing from.

I can totally understand how new research in AI would be needed to solve that problem.

Read Andy Oram’s Article “Does Network Neutrality Really Matter?” Please.

August 17th, 2014

I don’t usually write a blog post just to say “go read this other person’s blog post”, but some cases are worth an exception. Andy Oram’s recent post at O’Reilly Radar

Does net neutrality really matter?

is a must-read if you think you know where you stand on network neutrality.

The million comments received by the FCC (and one of them was mine) certainly indicated a healthy interest and watchfulness on the part of the public; with luck, the FCC will understand them that way. But the simplistic recommendation virtually all of us made in those comments, essentially that the FCC should grab the bluntest and most direct instrument at hand, Title II authority, and use it to regulate Internet traffic in a one-size-fits-all way, may not be the best outcome for the Internet. Andy Oram’s post explains why.

I still think that wave of comments was, overall, a good thing. The FCC, and by extension Congress, are now very aware that if smaller players start to have real trouble getting good Internet connections (inbound or outbound), it will be an electoral issue. But just because the comments demonstrate vigilance doesn’t mean they’re actually making the best technical recommendation available. After reading Andy’s post, you’ll understand why. In particular, follow his link to Michael Powell’s comment about the “Mercedes Divide”.

Once again, Andy Oram’s post:

Does net neutrality really matter?

Quick update on the Craig Shirley affair: NYT Public Editor agrees Rick Perlstein was smeared.

August 12th, 2014

A quick update for those who’ve seen my previous post (and followup) about the false charges of plagiarism levied by Craig Shirley against historian Rick Perlstein:

The New York Times Public Editor, Margaret Sullivan, agrees that Rick Perlstein was unfairly swift-boated here, and that the NYT contributed to the problem. See her post today: “Was an Accusation of Plagiarism Really a Political Attack?”

Sullivan discussed the matter with NYT deputy media editor Bill Brink, who, rather incredibly, said

We wrote about it because it was out there and thought we could take it head-on in the story.

It was out there.

What’s so wrong about that — and what Bill Brink should know already, in his bones, if he’s working in journalism — is that there is no out there.

To act as though there’s such a thing as out there, and to think that one can just report on whatever’s happening out there, is merely to enable the rumor-spreaders and gossip-mongers who are the enemy of truth-seeking journalists. This is easy to see by induction: if Rick Perlstein didn’t engage in plagiarism (which he didn’t), but the NYT prints an article saying that he’s been accused of it, does that mean it’s now “out there”? And now that it’s out there, that would justify an editor at, say, CNN doing a quick spot on it too? Fair game, because it’s out there now, right? Meanwhile, the false charge gains credibility with every ratchet-step in prestige of the outlet repeating it. So walk back the cat: whatever source the NYT got the charges from has to evaluated, like any other source, and not be amplified if not credible. But instead, the NYT just played a middle step in a rumor chain.

Repeating rumors is not journalism. If the story is about the fact that a rumor is circulating, then clearly state that — meta is okay, though it should be reserved for very rare cases (this wasn’t one of them) where the effect of the rumor is itself a story. And the responsible way to report on those cases is to actually evaluate the evidence for and against the rumor, while making it clear that the story is about why the rumor is circulating. If the rumor has no basis in fact, that absolutely must be made unambiguously clear in the story, preferably in the lede. Quick test: if your story isn’t promoting the circulation of something true and discouraging the circulation of something false, you’re doing it wrong.

The original NYT piece didn’t meet any of these tests. As Margaret Sullivan rightly says:

Yes, the claim was “out there” but so are smears of all kinds as well as claims that the earth is flat and that climate change is unfounded. This one comes from the author of a book on the same subject with an opposing political orientation. By taking it seriously, The Times conferred a legitimacy on the accusation it would not otherwise have had.

And while it is true that Mr. Perlstein and his publisher were given plenty of opportunity to respond, that doesn’t help much. It’s as if The Times is saying: Here’s an accusation; here’s a denial; and, heck, we don’t really know. We’re staying out of it. Readers frequently complain to me about this he said, she said false equivalency — and for good reason.

So I’m with the critics. The Times article amplified a damaging accusation of plagiarism without establishing its validity and doing so in a way that is transparent to the reader. The standard has to be higher.

If Bill Brink still doesn’t understand this, even after reading Sullivan’s piece, he’s in the wrong job

.

The Craig Shirley / CIA / Wikipedia Mystery.

August 11th, 2014

Last week I wrote about how historian Rick Perlstein had been falsely accused of plagiarism by author Craig Shirley. In the course of writing that post, I looked at Craig Shirley’s Wikipedia page, and found something really surprising. At that time, the page contained this — completely unsourced —  assertion about Craig Shirley:

He was a decorated contract agent for the Central Intelligence Agency.

“Whuh?” I thought to myself.

Before going on, I want to make something very clear:

Just because an assertion is on a person’s Wikipedia page, that doesn’t mean a) that the assertion is true, nor does it mean b) that the person who is the subject of the page added it. In other words, Craig Shirley himself might have nothing to do with this claim, and there is no proof here either that he is ex-CIA or that he wanted people to think he was.

Since the claim was unsourced, I added a standard [citation needed] tag to it (in this change, for those keeping score at home).

A couple of hours later, an automated Wikipedia maintenance bot came along and added a date to my tag. Then a day later, John Broughton, a pretty experienced Wikipedian, came along and removed the claim entirely, on the grounds that contentious assertions must be sourced, and if they are not, the proper remedy is to simply remove them. (John Broughton was quite right, by the way; I’d been tempted to make that edit myself, before settling on just marking it as needing a citation.)

Naturally, I became curious about when and how the CIA claim had first appeared on the page, so I looked deeper into the page history. It turns out it’s been there since 29 December 2012, when it was added as part of a bunch of changes to the page by a user named Reagan1988. Here are all the substantive changes added in that revision by Reagan1988:

His books have been hailed as the definitive works on the Gipper’s campaigns of 1976 and 1980. He is a member of the Board of Governors of the Reagan Ranch and has lectured at the Reagan Library. …

Shirley is the founder of the Ft. Hunt Youth Lacrosse Program, was coach there for 14 years, compiling a record of 121 wins, 19 losses and 4 ties, winning several championships. In the 20 plus years since Shirley founded the program, thousands of boys and girls have enjoyed learning and playing for Ft. Hunt. He was also an editor of Coaching Youth Lacrosse, published by the Lacrosse Foundation.

… His varied interests include sailing, waterskiing, sport shooting, renovating buildings, and scuba diving. He was a decorated contract agent for the Central Intelligence Agency.

This is so embarrassing that I think there’s a real possibility it’s a false-flag operation, by someone who doesn’t like Craig Shirley, to make it look as though Shirley had made these edits to his own Wikipedia page. On the other hand, the CIA assertion stayed in the page from late 2012 until last week. I don’t know Craig Shirley personally, but my guess is that a person who runs a public relations firm is aware of what his own Wikipedia page says, and unlikely to be so concerned about maintaining good Wikipedia form [1] that he would have let an error remain in his own page for more than a year without doing something about it.

So that’s where things stand. I don’t know how seriously to take the claim that he was a “decorated contract agent” for the CIA, and I don’t know if Craig Shirley had anything to do with its presence in his Wikipedia page.

I wonder who the user “Reagan1988″ is. Whoever they are, all they’ve ever done (at least while logged in as that user) is edit Craig Shirley’s page, for a short period between 29 December 2011 and 10 January 2012. They have apparently made no edits since then.

__________________

[1]: There isn’t a hard-and-fast rule against editing one’s own page, by the way, though if one can say that one has never done it it’s a nice way to shut down certain trolling arguments. For example, my own page has had an uncorrected error for a few months now. I didn’t put it there, but I also haven’t corrected it since I feel it would be bad form to edit my own page. What Wikipedia’s Conflict-of-Interest Policy says on this is:

If you have a personal connection to a topic or person, you are advised to refrain from editing those articles directly, from adding related advertising links, links to personal websites and similar, and to provide full disclosure of the connection if you comment about the article on talk pages or in other discussions.

An exception to editing an article about yourself or someone you know is made if the article contains defamation or a serious error that needs to be corrected quickly. If you do make such an edit, follow it up with an email to WP:OTRS, Wikipedia’s volunteer response team, or ask for help on WP:BLPN, our noticeboard for articles about living persons.

[2]: Thanks to my friend Sumana Harihareswara for clueing me in to the link for getting all of Reagan1988’s contribution history on Wikipedia.