Half-Elf on Tech

Thoughts From a Professional Lesbian

Author: Ipstenu (Mika Epstein)

  • Stolen GPL

    Stolen GPL

    I made a polarizing comment on Twitter back in November, which was perfectly plain to me, but apparently not everyone else.

    “GPL means that you can fork, but it doesn’t mean you can steal, and you know damn well what theft is.”

    I should have said ‘doesn’t mean you should steal, and you know damn well what that is’ but the point is close enough. Forking in GPL is not only okay, it’s encouraged. Many of us get our starts forking and improving plugins. But there’s a difference between that and stealing someone’s work and presenting it as our own. That’s stealing, plain and simple. If you fork, you attribute. I have a plugin that started as a fork and ended up 100% re-written in a totally different way, but I still credit my original inspiration.

    Why?

    Because of the community.

    Look, per GPL, taking someone’s plugin is not stealing it, in so far as taking the code goes. You have the right to distribute someone else’s code. And I don’t even think that taking someone’s copyright protected work is actually theft. What I do think is that is taking someone else’s work with questionable motives, and rebranding it as your own, is stealing.

    Here’s the GNU’s take on Copyright ‘Theft’:

    Copyright apologists often use words like “stolen” and “theft” to refer to copyright infringement. This is spin, but they would like you to take it for objective truth.

    Under the US legal system, copyright infringement is not theft. Laws about theft are not applicable to copyright infringement. The copyright apologists are making an appeal to authority—and misrepresenting what authority says.

    Unauthorized copying is forbidden by copyright law in many circumstances (not all!), but being forbidden doesn’t make it wrong. In general, laws don’t define right and wrong. Laws, at their best, attempt to implement justice. If the laws (the implementation) don’t fit our ideas of right and wrong (the spec), the laws are what should change.

    I agree with their explanation, and think it’s valid, in so far as it goes.

    Where it breaks down is the motive, as I mentioned before. If I buy a plugin or theme to use, I’ve bought it for the intended purpose. If I buy it to fork, I’ve bought it for another intended purses. If I buy it to sell as my own, now I’ve walked into asshole territory. Per the GPL, this isn’t theft and it isn’t stealing (again, forking is okay). But when you look at it dead on, you’ve taken someone else’s work, with the intent to profit from their work, without any attribution or credit or compensation.

    In any other situation, that would be, clearly, stealing.

    Theft is taking someone else’s property without permissions and with the intent to deprive the rightful owner of it. Obviously we’re not depriving the owner of the product when it comes to software, but we are intended to deprive them of the profits of their software, by circumventing their established ‘sales’ procedure. This works the other way, too. If I take someone’s free theme/plugin and sell it, I’m stealing from them as well. However. In both cases, if I’m not selling the product, but selling my support of it, I’m not stealing anything.

    Stealing is presenting someone else’s works as your own, among other definitions, and taking without right or permission. When it comes to GPL, you have both right and permission to take, that is unquestioned. But again, once you start presenting this as your own, you’ve walked into asshole territory. You didn’t do the work, you didn’t write the code, and you didn’t do anything except copy/paste. That’s not coding. You’re being dishonest, and I feel you’re stealing.

    It’s morally ambiguous and sticky for me to just say ‘this is stealing’ which is why I have to come back to the intent and motive. Am I doing this for altruistic reasons? Did the developer take a walk and abandon their work, and I’m simply keeping it alive? Did the developer reject my patch so I forked it? Or am I doing this because I resent them charging $85 for a plugin when WordPress is free? If it’s that last one, then I’m a thief, because my motive is to stick it to the other guy.

    Separating ‘stealing’ and ‘theft’ is like undoing a Gordian knot. You can do it, but it starts bumping into all sorts of crazy semantics. That’s why, most of the time, we don’t bother. I have a very strong opinion on the subject of code-theft, and always have. I feel that the only way to keep the GPL going is to not only do what’s right, but mean it, and being a good steward of the community, be it WP or Drupal or even Expression Engine, means you have to do what’s right.

    The right thing is to thank the guy who came first. Even an ‘Inspired by a snide comment by Ipstenu’ is being a good steward. You’ve encouraged me to do more by taking the time to recognize my effort. With that encouragement, I’ll go on to do more. It’s positive reinforcement at it’s best.

  • CodePoet Interview with Me!

    CodePoet Interview with Me!

    Laugh a LittleLast week they asked if I was interested in an interview. Of course I said yes.

    Do I consider myself a developer? Yes. But I’m not a computer programmer. Sure I can manage my way around the block with many things, but I don’t do desktop software, or really server software very much. I just like to make the Internet more awesome.

    If you want to hear the story about how French Toast led to working at DreamHost, or my secret to how to not kill users, or even my next big WP book plan, go read my interview on Code Poet.

  • Google Apps Ain’t Free

    Google Apps Ain’t Free

    gmaildollarA lot of my friends tout Google Apps for email. I use them on three sites, mostly as an experiment.

    Google Apps for Business isn’t free anymore. You used to be able to go to their pricing and click on free to set everything up for a few users. No more.(Irony, Google Apps doesn’t accept Google Checkout for currency.)

    What does this mean? Well a lot of people will have to run their own mail servers again. It’s not surprising to me, given how hard Google had been making it to find the free version, but it is a bit of a dick move to say “And now we’re charging.” I would have thought dropping the number of free from whatever it is now to five, or even one, email account would have been better. Actually, what would be great is if Google had a just email domain mapping you could do, but they don’t.

    This sucks a lot for a lot of people, including me as I was thinking it’d be nice to have all my friends who are hosted here using Google for email – they know it and are used to it.

    ETA: As Otto pointed out, the no-longer-free is only for new people. Anyone with an existing account is fine. So don’t make any more domains! (And now we see how IP addresses will last…)

  • Multisite eBooks Updated for WordPress 3.5

    Multisite eBooks Updated for WordPress 3.5

    Cat BookNo, it’s not out yet, but it is in Release Candidate land. This means that you can download and test 3.5 RC3 now to help us debug and finish up so that WP 3.5 is ready ASAP. Nacin says, don’t put this on a live site unless you’re daring. I’m running it here, which is a Multisite, so I can tell you it works.

    In preparation for all this, I’ve updated WordPress Multisite 101 and WordPress Multisite 110 for use with 3.5. Very little was needed to be done, but getting to say “Yes, you can install WP in it’s own directory!” is one of the happiest things I get to write. The only thing that’ll make me happier is the day I say “It’s easy to change the blog slug.”

    In addition to adding in the 3.5 information, each ebook has been updated to reflect other community changes, such as new plugins to help you make it through the day, and the magic of per-site-registration.

    As always, my ebooks are Pay What You Will. I suggest a $5 donation, but I also encourage you to download, read it, find value, and then come back. Sadly I can’t do that with the Kindle copies, which are priced at $7.99 in order to break even with those costs.

    Oh and the reasons you should test 3.5 before it drops:

    • You wrote a theme/plugin
    • You support people who use WP
    • You want a much better media upload interface
    • You want to give WordPress it’s own directory and run multisite
  • Domain Registration, No Hosting

    Just want to use DreamHost for DNS? You can do that!

    Login into your Panel and go into Domain > Registrations.

    Click the “Add Hosting” button on the far right.

    It will redirect you to a new page and from that page you can select from “Fully Hosted, Redirect, etc”. The very last one is “DNS Only”.

    Go ahead and select that and there you go!

    You can also go to the Manage Domains page and click on (Add New Domain / Sub-Domain button), and scroll to the bottom of the next page to set it up for DNS Only.

  • Multisite Login Loop

    Multisite Login Loop

    Congratulations, you’ve decided to go Multisite and added in all your lines to your config file. You’re raring to go, and the last step is to log out and back in.

    But you can’t.

    You get to the login screen, enter your credentials, and the page just refreshes. What’s on earth is going on?

    This is actually a pretty rare thing, and I was only able to reproduce it when I moved my site on the server. The fix is actually pretty easy, and there are three things to do.

    1) Edit your wp-config.php.

    Visit https://api.wordpress.org/secret-key/1.1/salt/ and get new salts/hashes. This should prompt your users to re-login and hopefully generate new cookies.

    2) Dump your cache.

    Sometimes, however, browsers are idiots and you have to flush the local cache. You shouldn’t need to dump caching plugins, since that doesn’t impact logins.

    3) Delete your cookies.

    I hate this one. Delete the cookies only for your domain if possible. Chrome hides this, but it’s doable for all sites.

    4) Check your .htaccess

    A lot of people miss this. When the directions say ‘Replace your .htaccess with this…’ what they mean is replace. And yet many people leave in the old WordPress rules. Remember to replace your .htaccess calls for WP with the correct one: Multisite .htaccess rules

    5) Check your wp-config.php again

    You need to have both define('WP_ALLOW_MULTISITE', true); and define('MULTISITE', true); in there.

    But what if you have this problem on Single Site? Do the same thing, but if you’re using CloudFlare, go check your settings. They’ve been known to cause problems with this, due to handling of redirects. Me and a coworker wasted a couple hours on that, before someone else pointed it out.

    Edited to add….

    6) Kick wp-config.php in the butt

    Tom McFarlin came up with added this to your file:

    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIE_DOMAIN', '');
    define('COOKIEPATH', '');
    define('SITECOOKIEPATH', '');
    

    This kicks the cookies.