CINXE.COM
Stolen GPL — Half-Elf on Tech
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> <head profile="http://gmpg.org/xfn/11"><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("http://halfelf.org:80/2012/gpl-and-theft/","20130117141426","https://web.archive.org/","web","/_static/", "1358432066"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Stolen GPL — Half-Elf on Tech</title> <meta name="robots" content="noodp,noydir"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/><link rel="alternate" type="application/rss+xml" title="Half-Elf on Tech » Feed" href="https://web.archive.org/web/20130117141426/http://halfelf.org/feed/"/> <link rel="alternate" type="application/rss+xml" title="Half-Elf on Tech » Comments Feed" href="https://web.archive.org/web/20130117141426/http://halfelf.org/comments/feed/"/> <script type="text/javascript">//<![CDATA[ // Google Analytics for WordPress by Yoast v4.2.8 | http://yoast.com/wordpress/google-analytics/ var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-6548280-4']); _gaq.push(['_trackPageview']); (function () { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://web.archive.org/web/20130117141426/https://ssl' : 'https://web.archive.org/web/20130117141426/http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); //]]></script> <link rel="alternate" type="application/rss+xml" title="Half-Elf on Tech » Stolen GPL Comments Feed" href="https://web.archive.org/web/20130117141426/http://halfelf.org/2012/gpl-and-theft/feed/"/> <link rel="canonical" href="https://web.archive.org/web/20130117141426/http://halfelf.org/2012/gpl-and-theft/"/> <link rel="stylesheet" id="colorbox-theme6-css" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/plugins/jquery-colorbox/themes/theme6/colorbox.css?ver=4.5" type="text/css" media="screen"/> <link rel="stylesheet" id="streamline-theme-css" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/themes/streamline/style.css?ver=1.9.1" type="text/css" media="all"/> <link rel="stylesheet" id="jetpack-widgets-css" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/plugins/jetpack/modules/widgets/widgets.css?ver=20121003" type="text/css" media="all"/> <link rel="stylesheet" id="bcq_quicktags-css" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/plugins/basic-comment-quicktags/quicktags.css?ver=1.8" type="text/css" media="all"/> <link rel="stylesheet" id="wp_dlmp_styles-css" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/plugins/download-monitor/page-addon/styles.css?ver=3.6-alpha-23288" type="text/css" media="all"/> <link rel="stylesheet" id="widget-grid-and-list-css" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/plugins/jetpack/modules/widgets/widget-grid-and-list.css?ver=3.6-alpha-23288" type="text/css" media="all"/> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-includes/js/jquery/jquery.js?ver=1.9.0"></script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-includes/js/jquery/jquery-migrate.js?ver=1.0.0"></script> <script type="text/javascript"> /* <![CDATA[ */ var jQueryColorboxSettingsArray = {"jQueryColorboxVersion":"4.5","colorboxInline":"false","colorboxIframe":"false","colorboxGroupId":"","colorboxTitle":"","colorboxWidth":"false","colorboxHeight":"false","colorboxMaxWidth":"false","colorboxMaxHeight":"false","colorboxSlideshow":"false","colorboxSlideshowAuto":"false","colorboxScalePhotos":"true","colorboxPreloading":"true","colorboxOverlayClose":"true","colorboxLoop":"true","colorboxEscKey":"true","colorboxArrowKey":"true","colorboxScrolling":"true","colorboxOpacity":"0.85","colorboxTransition":"elastic","colorboxSpeed":"350","colorboxSlideshowSpeed":"2500","colorboxClose":"close","colorboxNext":"next","colorboxPrevious":"previous","colorboxSlideshowStart":"start slideshow","colorboxSlideshowStop":"stop slideshow","colorboxCurrent":"{current} of {total} images","colorboxXhrError":"This content failed to load.","colorboxImgError":"This image failed to load.","colorboxImageMaxWidth":"false","colorboxImageMaxHeight":"90%","colorboxImageHeight":"false","colorboxImageWidth":"false","colorboxLinkHeight":"false","colorboxLinkWidth":"false","colorboxInitialHeight":"100","colorboxInitialWidth":"300","autoColorboxJavaScript":"","autoHideFlash":"","autoColorbox":"true","autoColorboxGalleries":"","addZoomOverlay":"","useGoogleJQuery":"","colorboxAddClassToLinks":""}; /* ]]> */ </script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-content/plugins/jquery-colorbox/js/jquery.colorbox-min.js?ver=1.3.20.1"></script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-content/plugins/jquery-colorbox/js/jquery-colorbox-wrapper-min.js?ver=4.5"></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://halfelf.org/xmlrpc.php?rsd"/> <link type="text/plain" rel="author" href="http://http://halfelf.org/humans.txt"/><meta name="pinterest" content="nopin"/><link rel="stylesheet" href="https://web.archive.org/web/20130117141426cs_/http://halfelf.org/wp-content/plugins/cookies-for-comments/css.php?k=5e249926b9a2330b35378282faa7587d&t=1292048294" type="text/css" media="screen"/> <style type="text/css"> .download-info .download-button { background-image: url(https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/plugins/download-monitor/page-addon/downloadbutton.gif); } .download-info .more-button { background-image: url(https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/plugins/download-monitor/page-addon/morebutton.gif); } </style> <!-- Jetpack Open Graph Tags --> <meta property="og:type" content="article"/> <meta property="og:title" content="Stolen GPL"/> <meta property="og:url" content="https://web.archive.org/web/20130117141426/http://halfelf.org/2012/gpl-and-theft/"/> <meta property="og:description" content="Stealing GPL isn't impossible, it happens more often than I'd like, and it could be easily avoided with a simple attribution of effort."/> <meta property="og:site_name" content="Half-Elf on Tech"/> <meta property="og:image" content="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/uploads/sites/2/sites/2/2012/11/300px-Alexander_cuts_the_Gordian_Knot.jpeg"/> <link rel="pingback" href="http://halfelf.org/xmlrpc.php"/> <meta id="syntaxhighlighteranchor" name="syntaxhighlighter-version" content="3.1.3"/> </head> <body class="single single-post postid-2818 single-format-standard content-sidebar"> <div id="wrap"> <div id="header"><div class="wrap"><div id="title-area"><p id="title"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/" title="Half-Elf on Tech">Half-Elf on Tech</a></p><p id="description">Half Elf, Full B.I.T.C.H.</p></div><!-- end #title-area --><div class="widget-area"><div id="execphp-12" class="widget widget_execphp"><div class="widget-wrap"> <div class="execphpwidget"><h3>Half Elf, Full B.I.T.C.H.<a href="https://web.archive.org/web/20130117141426/http://halfelf.org/about/#bitch" title="Brave, Intelligent, Tenacious, Creative and Honest">*</a></h3> <div class="pw-header"><iframe src="https://web.archive.org/web/20130117141426if_/http://halfelf.org/code/ads/halfelf-banner.php" width="510" height="105" frameborder="0"><!-- Project Wonderful Ad Box Loader --> <!-- Put this after the <body> tag at the top of your page --> <script type="text/javascript"> (function(){function pw_load(){ if(arguments.callee.z)return;else arguments.callee.z=true; var d=document;var s=d.createElement('script'); var x=d.getElementsByTagName('script')[0]; s.type='text/javascript';s.async=true; s.src='//web.archive.org/web/20130117141426/http://www.projectwonderful.com/pwa.js'; x.parentNode.insertBefore(s,x);} if (window.attachEvent){ window.attachEvent('DOMContentLoaded',pw_load); window.attachEvent('onload',pw_load);} else{ window.addEventListener('DOMContentLoaded',pw_load,false); window.addEventListener('load',pw_load,false);}})(); </script> <!-- End Project Wonderful Ad Box Loader --> <!-- Project Wonderful Ad Box Code --> <div style="text-align:center;"><div style="display:inline-block;" id="pw_adbox_63238_1_0"></div></div> <script type="text/javascript"></script> <noscript><div style="text-align:center;"><div style="display:inline-block;"><map name="admap63238" id="admap63238"><area href="https://web.archive.org/web/20130117141426/http://www.projectwonderful.com/out_nojs.php?r=0&c=0&id=63238&type=1" shape="rect" coords="0,0,468,60" title="" alt="" target="_blank"/></map> <table cellpadding="0" cellspacing="0" style="width:468px;border-style:none;background-color:;"><tr><td><img src="https://web.archive.org/web/20130117141426im_/http://www.projectwonderful.com/nojs.php?id=63238&type=1" style="width:468px;height:60px;border-style:none;" usemap="#admap63238" alt=""/></td></tr><tr><td colspan="1"><center><a style="font-size:10px;color:#0000ff;text-decoration:none;line-height:1.2;font-weight:bold;font-family:Tahoma, verdana,arial,helvetica,sans-serif;text-transform: none;letter-spacing:normal;text-shadow:none;white-space:normal;word-spacing:normal;" href="https://web.archive.org/web/20130117141426/http://www.projectwonderful.com/advertisehere.php?id=63238&type=1" target="_blank">Ads by Project Wonderful! Your ad here, right now: $0</a></center></td></tr></table></div></div> </noscript> <!-- End Project Wonderful Ad Box Code --></iframe></div></div> </div></div> </div><!-- end .widget-area --></div><!-- end .wrap --></div><!--end #header--><div id="nav"><div class="wrap"><ul id="menu-primary" class="menu genesis-nav-menu menu-primary"><li id="menu-item-2888" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-2888"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/">Home</a></li> <li id="menu-item-1994" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1994"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/ebooks/">eBooks</a></li> <li id="menu-item-1954" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1954"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/plugins/">Plugins</a></li> <li id="menu-item-2044" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2044"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/contact/">Contact</a></li> <li id="menu-item-2063" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2063"><a href="https://web.archive.org/web/20130117141426/http://ipstenu.org/" onclick="javascript:_gaq.push(['_trackEvent','outbound-menu','https://web.archive.org/web/20130117141426/http://ipstenu.org']);">Ipstenu.Org</a></li> <li class="right search"> <form method="get" class="searchform search-form" action="https://web.archive.org/web/20130117141426/http://halfelf.org/"> <input type="text" value="Search this website…" name="s" class="s search-input" onfocus="if (this.value == 'Search this website…') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search this website…';}"/> <input type="submit" class="searchsubmit search-submit" value="Search"/> </form> </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"><div class="breadcrumb"><div class="inner"><span class="home"></span><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/" title="View Home">Home</a> <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/category/philo/" title="View all items in Philosopy">Philosopy</a> Stolen GPL</div></div> <div id="content-sidebar-wrap"> <div id="content" class="hfeed"> <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/2012/gpl-and-theft/" rel="bookmark"><img class="post-photo" src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/uploads/sites/2/sites/2/2012/11/300px-Alexander_cuts_the_Gordian_Knot.jpeg" alt="Stolen GPL"/></a><div class="post-info"><span class="author vcard"><span class="fn"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/author/ipstenu/" class="fn n" title="Ipstenu (Mika Epstein)" rel="author">Ipstenu (Mika Epstein)</a></span></span> <span class="date published time" title="2012-12-13T16:10:57+00:00">13 December, 2012</span> </div> <div class="post-wrap"> <div class="post-2818 post type-post status-publish format-standard hentry category-philo tag-essay tag-freedom tag-gpl tag-open-source entry"> <h1 class="entry-title">Stolen GPL</h1> <div class="entry-content"> <p><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/wp-content/uploads/sites/2/2012/11/piracy-stealing-file-sharing.jpeg"><img width="100" height="100" src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/uploads/sites/2/2012/11/piracy-stealing-file-sharing-100x100.jpeg" class="alignleft size-thumbnail wp-image-2927 colorbox-2818"/></a> I made a polarizing comment on Twitter back in November, which was perfectly plain to me, but apparently not everyone else.</p> <p>“GPL means that you can fork, but it doesn’t mean you can steal, and you know damn well what theft is.”</p> <p>I should have said ‘doesn’t mean you <em>should</em> steal, and you know damn well what <em>that</em> 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 <em>still</em> credit my original inspiration.</p> <p>Why? </p> <p>Because of the community.</p> <p>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.</p> <p>Here’s the <a href="https://web.archive.org/web/20130117141426/http://www.gnu.org/philosophy/words-to-avoid.html#Theft" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','https://web.archive.org/web/20130117141426/http://www.gnu.org']);">GNU’s take on Copyright ‘Theft’</a>:</p> <blockquote><p>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.</p> <p>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.</p> <p>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.</p></blockquote> <p>I agree with their explanation, and think it’s valid, in so far as it goes.</p> <p>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.</p> <p>In any other situation, that would be, clearly, stealing.</p> <p>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 <em>profits</em> 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. </p> <p>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.</p> <p><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/wp-content/uploads/sites/2/2012/11/300px-Alexander_cuts_the_Gordian_Knot.jpeg"><img width="300" height="232" src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/uploads/sites/2/2012/11/300px-Alexander_cuts_the_Gordian_Knot.jpeg" class="alignleft wp-image-2821 colorbox-2818"/></a> 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.</p> <p>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.</p> <p>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.</p> <!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://halfelf.org/2012/gpl-and-theft/" dc:identifier="http://halfelf.org/2012/gpl-and-theft/" dc:title="Stolen GPL" trackback:ping="http://halfelf.org/2012/gpl-and-theft/trackback/" /> </rdf:RDF>--> </div><!-- end .entry-content --> <div class="post-meta"><span class="categories">Filed Under: <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/category/philo/" title="View all posts in Philosopy" rel="category tag">Philosopy</a></span> <span class="tags">Tagged: <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/tag/essay/" rel="tag">essay</a>, <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/tag/freedom/" rel="tag">freedom</a>, <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/tag/gpl/" rel="tag">gpl</a>, <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/tag/open-source/" rel="tag">open source</a></span> </div><div class="after-post widget-area"><div id="text-5" class="widget widget_text"><div class="widget-wrap"> <div class="textwidget"><div class="after-sing-ad"><a href="https://web.archive.org/web/20130117141426/http://halfelf.org/ebooks/wordpress-multisite-110/" title="WordPress Multisite 110"><img src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/uploads/sites/2/2012/05/wpms110-button.png" alt="" title="WordPress Multisite 110 ebook" width="100" height="100" class="alignright wp-image-1990"/></a><p>Know Multisite and need more? Check out <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/ebooks/wordpress-multisite-110/" title="WordPress Multisite 110">WordPress Multisite 110</a><br/>Need help getting started with Multisite? There''s <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/ebooks/wordpress-multisite-101">WordPress Multisite 101</a> for you.</p></div><div style="clear:both;"></div></div> </div></div> </div> </div><!-- end .postclass --> <div id="comments"> <h3>Comments</h3> <ol class="comment-list"> <li class="comment even thread-even depth-1" id="comment-4963"> <div class="comment-header"> <div class="comment-author vcard"> <img alt="" src="https://web.archive.org/web/20130117141426im_/http://0.gravatar.com/avatar/8a50eb4ed9bb4354d6df8e881befe64e?s=48&d=retro&r=R" class="avatar avatar-48 photo" height="48" width="48"/> <cite class="fn"><a href="https://web.archive.org/web/20130117141426/http://glueckpress.com/" onclick="javascript:_gaq.push(['_trackEvent','outbound-commentauthor','https://web.archive.org/web/20130117141426/http://glueckpress.com']);" rel="external nofollow" class="url">Caspar Hübinger</a></cite> <span class="says">says:</span> </div><!-- end .comment-author --> <div class="comment-meta commentmetadata"> <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/2012/gpl-and-theft/#comment-4963">13 December, 2012 at 11:55 pm</a> </div><!-- end .comment-meta --> </div> <div class="comment-content"> <blockquote><p>The right thing is to thank the guy who came first.</p></blockquote> <p>Totally agreed. I find the idea of a <a href="https://web.archive.org/web/20130117141426/http://humanstxt.org/" onclick="javascript:_gaq.push(['_trackEvent','outbound-comment','https://web.archive.org/web/20130117141426/http://humanstxt.org']);" rel="nofollow">humans.txt</a> very helpful. Although it says on their website the file should be placed in the site root (in order for Google to support it), I think there’s nothing wrong with putting one into my plugin or theme directory—given the product I want to credit people for is not a whole website but a plugin or theme. (If you don’t want to mix things up, name it credits.txt or whatever.) I like the concept, because it provides a particular place for saying thanks and collect sources of inspiration rather than placing them in comments all over my PHP files.</p> </div><!-- end .comment-content --> <div class="reply"> </div> <ul class="children"> <li class="comment byuser comment-author-ipstenu bypostauthor odd alt depth-2" id="comment-4964"> <div class="comment-header"> <div class="comment-author vcard"> <img alt="" src="https://web.archive.org/web/20130117141426im_/http://0.gravatar.com/avatar/abfd4ff9c24957f1a9f0435e23de1f73?s=48&d=retro&r=R" class="avatar avatar-48 photo" height="48" width="48"/> <cite class="fn"><a href="https://web.archive.org/web/20130117141426/http://ipstenu.org/" onclick="javascript:_gaq.push(['_trackEvent','outbound-commentauthor','https://web.archive.org/web/20130117141426/http://ipstenu.org']);" rel="external nofollow" class="url">Ipstenu (Mika Epstein)</a></cite> <span class="says">says:</span> </div><!-- end .comment-author --> <div class="comment-meta commentmetadata"> <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/2012/gpl-and-theft/#comment-4964">14 December, 2012 at 8:45 am</a> </div><!-- end .comment-meta --> </div> <div class="comment-content"> <p>I’m a huge fan of Humans.txt. The catch with it and (in specific) WordPress plugins is that we <em>already</em> have a great way to credit: readme.txt <img src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley"/> </p> <p>Now I’m the sort who puts in in the code (php) itself, but I also put a disclaimer/copyright on all my files when I can anyway, and credit in-line. Mostly the in-line is to remind me, but that sort of credit is for coders. People who use, say Impostercide, should know that Skippy wrote it and I took over. Not that I don’t know how it works, but credit where it’s at <img src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> Ban Hammer credits folks that the current code has no reflection on, but they inspired me.</p> <p>It’s like the WordPress credits page. Credit isn’t just ‘So and so wrote XYZ’ but ‘So and so contributed to this because…’</p> </div><!-- end .comment-content --> <div class="reply"> </div> </li> </ul> </li> </ol> <div class="navigation"> <div class="alignleft"></div> <div class="alignright"></div> </div> </div><!--end #comments--> <div class="comment-policy" id="respond"> <p>By posting a comment, you agree to abide by the <a href="https://web.archive.org/web/20130117141426/http://halfelf.org/terms-of-use/">Terms of Use</a> (which include implicit acceptance of cookies) and follow these guidelines: <br/>Don't be a dick. Be excellent to one another. If you know what to do and you don't do it, there you bloody well are, aren't you?</p> </div> </div> <iframe src="https://web.archive.org/web/20130117141426if_/http://ipstenu.org/code/ads/studiopress-468x60.php" width="480" height="80" frameborder="0"> <center><a target="_new" href="https://web.archive.org/web/20130117141426/http://www.shareasale.com/r.cfm?b=281075&u=728549&m=28169&urllink=&afftrack="><img src="https://web.archive.org/web/20130117141426im_/http://www.shareasale.com/image/28169/TotMCrystal468x60.gif" alt="StudioPress Theme of the Month" border="0"></a></center></iframe> </div><!-- end #content --> <div id="sidebar" class="sidebar widget-area"> <div id="text-4" class="widget widget_text"><div class="widget-wrap"> <div class="textwidget"><div style="padding-bottom:5px;"><div class="g-plus" data-action="share" data-width="260" data-href="http://halelf.org/"></div></div> <div style="padding-bottom:5px;"><iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://web.archive.org/web/20130117141426if_/http://platform.twitter.com/widgets/follow_button.html?screen_name=ipstenu" style="width:260px; height:20px;"></iframe></div> <div style="padding-bottom:5px;"><iframe src="//web.archive.org/web/20130117141426if_/http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fhalfelf.org&send=false&layout=standard&width=250&show_faces=false&action=like&colorscheme=light&font&height=35&appId=194812207257190" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:260px; height:35px;" allowtransparency="true"></iframe></div></div> </div></div> <div id="text-7" class="widget widget_text"><div class="widget-wrap"><h4 class="widgettitle">Buy Me A Drink</h4> <div class="textwidget"><div id="newsletter"> <div class="white-border"> <center> <br/><a class="wepay-widget-button wepay-green" id="wepay_widget_anchor_505601eb76642" href="https://web.archive.org/web/20130117141426/https://www.wepay.com/donations/37438" onclick="javascript:_gaq.push(['_trackEvent','outbound-widget','https://web.archive.org/web/20130117141426/http://www.wepay.com']);">Donate $10.00</a> <script type="text/javascript"> var WePay = WePay || {}; WePay.load_widgets = WePay.load_widgets || function() { }; WePay.widgets = WePay.widgets || []; WePay.widgets.push( { object_id: 37438, widget_type: "donation_campaign", anchor_id: "wepay_widget_anchor_505601eb76642", widget_options: { donation_amount: "1000", allow_cover_fee: true, enable_recurring: true, allow_anonymous: true, button_text: "Donate $10.00" } }); if (!WePay.script) { WePay.script = document.createElement('script');WePay.script.type = 'text/javascript';WePay.script.async = true; WePay.script.src = 'https://web.archive.org/web/20130117141426/https://static.wepay.com/min/js/widgets.v2.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(WePay.script, s); } else if (WePay.load_widgets) { WePay.load_widgets(); } </script> <strong><br/> <br/>Or Donate What You Want</strong><br/> <a class="wepay-widget-button wepay-green" id="wepay_widget_anchor_4ffb9ad8f150b" href="https://web.archive.org/web/20130117141426/https://www.wepay.com/donations/37438" onclick="javascript:_gaq.push(['_trackEvent','outbound-widget','https://web.archive.org/web/20130117141426/http://www.wepay.com']);">Donate</a> <script type="text/javascript"> var WePay = WePay || {}; WePay.load_widgets = WePay.load_widgets || function() { }; WePay.widgets = WePay.widgets || []; WePay.widgets.push( { object_id:37438, widget_type:"donation_campaign", anchor_id:"wepay_widget_anchor_4ffb9ad8f150b", widget_options: { button_text:"Donate" } }); if (!WePay.script) { WePay.script = document.createElement('script');WePay.script.type = 'text/javascript';WePay.script.async = true; WePay.script.src = 'https://web.archive.org/web/20130117141426/https://static.wepay.com/min/js/widgets.v2.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(WePay.script, s); } else if (WePay.load_widgets) { WePay.load_widgets(); } </script> <br/><br/></center> </div> </div></div> </div></div> <div id="execphp-9" class="widget widget_execphp"><div class="widget-wrap"> <div class="execphpwidget"><center><iframe src="https://web.archive.org/web/20130117141426if_/http://ipstenu.org/code/ads/studiopress-120x240.php" width="130" height="260" frameborder="0"> <a target="_blank" href="https://web.archive.org/web/20130117141426/http://www.shareasale.com/r.cfm?b=241692&u=728549&m=28169&urllink=&afftrack="><img src="https://web.archive.org/web/20130117141426im_/http://www.shareasale.com/image/28169/120x240.jpg" alt="StudioPress Premium WordPress Themes" border="0"/></a></iframe> <iframe src="https://web.archive.org/web/20130117141426if_/http://halfelf.org/code/ads/halfelf-skyscraper.php" width="188" height="675" frameborder="0"> <!-- Project Wonderful Ad Box Loader --> <!-- Put this after the <body> tag at the top of your page --> <script type="text/javascript"> (function(){function pw_load(){ if(arguments.callee.z)return;else arguments.callee.z=true; var d=document;var s=d.createElement('script'); var x=d.getElementsByTagName('script')[0]; s.type='text/javascript';s.async=true; s.src='//web.archive.org/web/20130117141426/http://www.projectwonderful.com/pwa.js'; x.parentNode.insertBefore(s,x);} if (window.attachEvent){ window.attachEvent('DOMContentLoaded',pw_load); window.attachEvent('onload',pw_load);} else{ window.addEventListener('DOMContentLoaded',pw_load,false); window.addEventListener('load',pw_load,false);}})(); </script> <!-- End Project Wonderful Ad Box Loader --><!-- Project Wonderful Ad Box Code --> <div style="text-align:center;"><div style="display:inline-block;" id="pw_adbox_43404_3_0"></div></div> <script type="text/javascript"></script> <noscript><div style="text-align:center;"><div style="display:inline-block;"><map name="admap43404" id="admap43404"><area href="https://web.archive.org/web/20130117141426/http://www.projectwonderful.com/out_nojs.php?r=0&c=0&id=43404&type=3" shape="rect" coords="0,0,160,600" title="" alt="" target="_top" rel="nofollow"/></map> <table cellpadding="0" cellspacing="0" style="width:161px;border-style:none;background-color:;"><tr><td><img src="https://web.archive.org/web/20130117141426im_/http://www.projectwonderful.com/nojs.php?id=43404&type=3" style="width:161px;height:601px;border-style:none;" usemap="#admap43404" alt=""/></td></tr><tr><td colspan="1"><center><a style="font-size:10px;color:#0000ff;text-decoration:none;line-height:1.2;font-weight:bold;font-family:Tahoma, verdana,arial,helvetica,sans-serif;text-transform: none;letter-spacing:normal;text-shadow:none;white-space:normal;word-spacing:normal;" href="https://web.archive.org/web/20130117141426/http://www.projectwonderful.com/advertisehere.php?id=43404&type=3" target="_blank">Ads by Project Wonderful! Your ad here, right now: $0</a></center></td></tr></table></div></div> </noscript> <!-- End Project Wonderful Ad Box Code --></iframe></center></div> </div></div> </div> </div><!-- end #content-sidebar-wrap --> </div><!-- end .wrap --></div><!-- end #inner --><div id="footer-widgets" class="footer-widgets"><div class="wrap"><div class="footer-widgets-1 widget-area"><div id="blog_subscription-5" class="widget jetpack_subscription_widget"><div class="widget-wrap"><h4 class="widgettitle"><label for="subscribe-field">Subscribe to the Elf via Email</label></h4> <form action="" method="post" accept-charset="utf-8" id="subscribe-blog"> <p>Better than Elf on a Shelf is Elf in your email! Enter your email address to subscribe and receive notifications of new posts by email.</p><p>Join 41 other subscribers</p> <p><input type="text" name="email" style="width: 95%; padding: 1px 2px" value="Email Address" id="subscribe-field" onclick="if ( this.value == 'Email Address' ) { this.value = ''; }" onblur="if ( this.value == '' ) { this.value = 'Email Address'; }"/></p> <p> <input type="hidden" name="action" value="subscribe"/> <input type="hidden" name="source" value="http://halfelf.org/2012/gpl-and-theft/"/> <input type="hidden" name="sub-type" value="widget"/> <input type="hidden" name="redirect_fragment" value="blog_subscription-5"/> <input type="submit" value="Subscribe" name="jetpack_subscriptions_widget"/> </p> </form> </div></div> </div><div class="footer-widgets-2 widget-area"><div id="nav_menu-3" class="widget widget_nav_menu"><div class="widget-wrap"><h4 class="widgettitle">Useful Links</h4> <div class="menu-links-3-container"><ul id="menu-links-3" class="menu"><li id="menu-item-3074" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3074"><a href="https://web.archive.org/web/20130117141426/http://perishablepress.com/" onclick="javascript:_gaq.push(['_trackEvent','outbound-menu','https://web.archive.org/web/20130117141426/http://perishablepress.com']);">Perishable Press</a></li> <li id="menu-item-3075" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3075"><a href="https://web.archive.org/web/20130117141426/http://yoast.com/" onclick="javascript:_gaq.push(['_trackEvent','outbound-menu','https://web.archive.org/web/20130117141426/http://yoast.com']);">Yoast</a></li> <li id="menu-item-3076" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3076"><a href="https://web.archive.org/web/20130117141426/http://ottopress.com/" onclick="javascript:_gaq.push(['_trackEvent','outbound-menu','https://web.archive.org/web/20130117141426/http://ottopress.com']);">Otto on WordPress</a></li> </ul></div></div></div> </div><div class="footer-widgets-3 widget-area"><div id="text-6" class="widget widget_text"><div class="widget-wrap"><h4 class="widgettitle">Powered By</h4> <div class="textwidget"><center><a href="https://web.archive.org/web/20130117141426/http://www.liquidweb.com/?RID=JFO123" onclick="javascript:_gaq.push(['_trackEvent','outbound-widget','https://web.archive.org/web/20130117141426/http://www.liquidweb.com']);"><img src="https://web.archive.org/web/20130117141426im_/http://rgfx.liquidweb.com/banners/heroic125x125.gif" alt="Powered by Liquidweb - Affiliate Link" width="125" height="125"></a> <!--BEGIN LINK --><a href="https://web.archive.org/web/20130117141426/http://www.namecheap.com/?aff=32035"><img src="https://web.archive.org/web/20130117141426im_/http://files.namecheap.com/graphics/linkus/125x125-1.gif" height="125" width="125" border="0" alt="Domain Registrations starting at $9.98*"></a><!--END LINK --> <a href="https://web.archive.org/web/20130117141426/http://affl.sucuri.net/?affl=80318fc21285587a2b6888eaabdb28fb" onclick="javascript:_gaq.push(['_trackEvent','outbound-widget','https://web.archive.org/web/20130117141426/http://affl.sucuri.net']);"><img src="https://web.archive.org/web/20130117141426im_/http://sucuri.net/images/gotmalware.png" alt="Sucuri Security" height="125" width="125" border="0"/></a> <a href="https://web.archive.org/web/20130117141426/http://dreamhost.com/" onclick="javascript:_gaq.push(['_trackEvent','outbound-widget','https://web.archive.org/web/20130117141426/http://dreamhost.com']);"><img src="https://web.archive.org/web/20130117141426im_/http://halfelf.org/wp-content/uploads/sites/2/sites/2/2012/12/dreamhost-125.png" height="125" width="125" border="0"/></a></center></div> </div></div> </div></div><!-- end .wrap --></div><div id="footer" class="footer"><div class="wrap"><div class="pw-footer"><iframe src="https://web.archive.org/web/20130117141426if_/http://halfelf.org/code/ads/halfelf-leaderboard.php" width="800" height="125" frameborder="0"><!-- Project Wonderful Ad Box Loader --> <!-- Put this after the <body> tag at the top of your page --> <script type="text/javascript"> (function(){function pw_load(){ if(arguments.callee.z)return;else arguments.callee.z=true; var d=document;var s=d.createElement('script'); var x=d.getElementsByTagName('script')[0]; s.type='text/javascript';s.async=true; s.src='//web.archive.org/web/20130117141426/http://www.projectwonderful.com/pwa.js'; x.parentNode.insertBefore(s,x);} if (window.attachEvent){ window.attachEvent('DOMContentLoaded',pw_load); window.attachEvent('onload',pw_load);} else{ window.addEventListener('DOMContentLoaded',pw_load,false); window.addEventListener('load',pw_load,false);}})(); </script> <!-- End Project Wonderful Ad Box Loader --><!-- Project Wonderful Ad Box Code --> <div style="text-align:center;"><div style="display:inline-block;" id="pw_adbox_57750_5_0"></div></div> <script type="text/javascript"></script> <noscript><div style="text-align:center;"><div style="display:inline-block;"><map name="admap57750" id="admap57750"><area href="https://web.archive.org/web/20130117141426/http://www.projectwonderful.com/out_nojs.php?r=0&c=0&id=57750&type=5" shape="rect" coords="0,0,728,90" title="" alt="" target="_blank"/></map> <table cellpadding="0" cellspacing="0" style="width:728px;border-style:none;background-color:;"><tr><td><img src="https://web.archive.org/web/20130117141426im_/http://www.projectwonderful.com/nojs.php?id=57750&type=5" style="width:728px;height:90px;border-style:none;" usemap="#admap57750" alt=""/></td></tr><tr><td colspan="1"><center><a style="font-size:10px;color:#66CCFF;text-decoration:none;line-height:1.2;font-weight:bold;font-family:Tahoma, verdana,arial,helvetica,sans-serif;text-transform: none;letter-spacing:normal;text-shadow:none;white-space:normal;word-spacing:normal;" href="https://web.archive.org/web/20130117141426/http://www.projectwonderful.com/advertisehere.php?id=57750&type=5" target="_blank">Ads by Project Wonderful! Your ad here, right now: $0</a></center></td></tr></table></div></div> </noscript> <!-- End Project Wonderful Ad Box Code --> </iframe></div></div><!-- end .wrap --></div><!-- end #footer --> </div><!-- end #wrap --> <script type="text/javascript"> function plusone_vote( obj ) { _gaq.push(['_trackEvent','plusone',obj.state]); } </script> <script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://web.archive.org/web/20130117141426/https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201303"></script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-content/themes/genesis/lib/js/menu/superfish.js?ver=1.4.8"></script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-content/themes/genesis/lib/js/menu/superfish.args.js?ver=1.9.1"></script> <script type="text/javascript"> /* <![CDATA[ */ var quicktagsL10n = {"wordLookup":"Enter a word to look up:","dictionaryLookup":"Dictionary lookup","lookup":"lookup","closeAllOpenTags":"Close all open tags","closeTags":"close tags","enterURL":"Enter the URL","enterImageURL":"Enter the URL of the image","enterImageDescription":"Enter a description of the image","fullscreen":"fullscreen","toggleFullscreen":"Toggle fullscreen mode","textdirection":"text direction","toggleTextdirection":"Toggle Editor Text Direction"}; /* ]]> */ </script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-includes/js/quicktags.js?ver=3.6-alpha-23288"></script> <script type="text/javascript" src="https://web.archive.org/web/20130117141426js_/http://halfelf.org/wp-content/plugins/basic-comment-quicktags/quicktags.js?ver=1.8"></script> <script src="https://web.archive.org/web/20130117141426js_/http://stats.wordpress.com/e-201303.js" type="text/javascript"></script> <script type="text/javascript"> st_go({v:'ext',j:'1:2.1.1',blog:'24177257',post:'2818',tz:'-8'}); var load_cmc = function(){linktracker_init(24177257,2818,2);}; if ( typeof addLoadEvent != 'undefined' ) addLoadEvent(load_cmc); else load_cmc(); </script></body> </html> <!-- FILE ARCHIVED ON 14:14:26 Jan 17, 2013 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 21:49:34 Dec 16, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.69 exclusion.robots: 0.033 exclusion.robots.policy: 0.02 esindex: 0.013 cdx.remote: 17.106 LoadShardBlock: 169.672 (3) PetaboxLoader3.datanode: 147.777 (5) PetaboxLoader3.resolve: 124.549 (2) load_resource: 168.179 (2) -->