Totally Free Code Day 0: Concept & Rationale
Fri 20 Jul 07 00:56 | Tags: Programming
I have decided that, over the next several weeks, I shall occasionally make available on this blog certain pieces of code which I have written for various purposes and causes in the past. These pieces of code shall be released into the public domain; or, if such is not possible (the aforelinked Wikipedia article presents confusing and at times seemingly contradictory information as to what it takes to willingly place a creation into the public domain), then I will release my claims of copyright over the code as much as legally possible, and will not object to its use in any form. Each piece of code will be accompanied with a bit of prose describing the function and purpose of the code, and possibly pointing out its deficiencies and offering suggestions for ways for others to improve it.
Totally Free Code Days so far:
- Captcha (PHP)
- Levenshtein distance (String comparison) (ActionScript 3)
Giving away your work for free? But why?
Several reasons.
One is that I am a fan of free and open source software. I'm no Linux fascist - a "freetard," in the words of Fake Steve Jobs - who demands that my hard drive contain nothing but gratis code. On the contrary, I'm perfectly fine with the concept of buying software, and of huge global corporations selling it. (I can't help but wonder if any of these free-code Linux freaks own any video game consoles made by an international company like Sony or Microsoft - and play decidedly non-free, strictly-copyrighted video games on it.)
However, I do partake in free software when it works well and suits my needs. I am currently composing this article in Smultron, an open-source text editor. I chat with family and friends via IRC with Colloquy and via AIM and ICQ with Adium. Before I got my current job, which allows me to use the decidedly commercial Photoshop, I used GIMP for image editing for years. And speaking of that job, I landed it because I can code in PHP. Free code has enriched my life - literally. I'd be a liar if I said that it had done anything less.
So I'd like to give back a little. Now, none of the code bits I'll be sharing will be as extensive or as widely appealing as those projects. In fact, to people who aren't programmers or at least interested in how computer programs are constructed will probably not even care. But the sole reason I wrote all that code was because I couldn't find any pre-existing, freely-available code that was sufficient for what I was trying to achieve. Unless I am to be the last person ever to hit those roadblocks, then the code I will share will be useful to at least one person in the world, if not more. So I'll put it out there, let the search engines index it, and the search engines will bring them to my code.
Which brings me to another reason I'm doing it; for web traffic! It'll be high-quality search engine bait.
Finally, and this may be a bit pie-in-the-sky, but I'd like to promote the idea that creating and releasing intellectual property such as source code for free to the public is a form of volunteerism. I think many people would argue that hacking up some code and posting it on the internet is not on the same level of volunteering as, say, building houses for the poor with Habitat for Humanity. And I can see how that argument can be made. To build two houses takes twice as much effort as building one, but I can write code once and thousands of people can use it with pretty much no additional effort on my part. Still, it is providing the product of my own labor for no cost; if that's not the definition of donation, I don't know what is. I think of anyone who has contributed to open-source software as a volunteer.
But why public domain? Why not offer it via a common open source code license like the GNU General Public License or the MIT License?
The goal of all open source projects, be they software or otherwise, is to allow the work to be used by as many people as possible… or so you'd think. I think that licenses, no matter how liberal, work against that; namely in cases in which the work will be used for something that isn't personal, non-profitable use. In other words, if you want to use the open-source Project X in your project, Project Y, and you intend to sell Project Y, you must now consult Project X's license to see if you are allowed to do so. Or even if you wish to give Project Y away for free, you may need to consult X's license to determine if redistribution rights have been granted to you, and under what terms; do you have to give attribution to Project X's creators in your documentation, for example? Why are you worrying about legal minutae instead of creating?
But if Project X is offered in the public domain, these concerns disappear. To do so is to say: "Here is something of value. I hope you find it useful. Do with it what you will." And that's that. It is simplicity. It is true open source. If someone takes my code and uses it to create a profitable commercial project, I am no poorer than I would have been had I not released the code in the first place. I didn't always think this way; I used to release an image board script called Thorn under a relatively restrictive open source license called the Artistic License. And I still wish to retain copyright on other things I create, such as the text of these blog entries. But starting with Conflagration, which I've always released as public domain, I guess you could say that I've come around to the idea of releasing my code as freely as possible.
So, fellow programmers, please stay tuned to Ray Gun Robot for some fun, nerdy code sharing in the freest form possible. Use the links below to subscribe to RGR's web feed, if you haven't already. And if you have any comments about code licensing or the concept of the public domain, I'd love to hear them in the comments.
Get more great Ray Gun Robot content sent directly to your feed reader or email inbox! Subscribe today!
Articles & Links — Via Email
Articles Only — Via Email
4 Comments | 0 Trackbacks |
| ![]()
Trackbacks
Comments
My wordpress layout came with a ton of license blather.
"This theme is released for free under a dual license. The CSS (stylesheet)/images of this theme are released under a Creative Commons Attribution 2.5 License, while the rest of the theme files are released under a GNU GPL License
Do's blah blah Dont's blah blah"
Sure. I respect your work and your generosity to give it away, but the one thing that erks me is the link backs. They say not to remove the footer links, if so I could be "reported to the DMCA." Oh Noes.
I dont mind giving respect to the designers, but they included 7 link backs in the footer. Some of them were to "supporters" and marketing sites. I'm sorry but those gots to go or I'll place them in comments.
Anyways, props to you giving and opening up your work.
Do'S:
- You can freely use the templates for your personal website OR company/corporate website, as long as you leave the designer credits intact. You may modify the theme, the php files as you please for your own use. If you plan on re-distributing the modified template, pls ensure that you make significant changes, changing a few graphics and images does not authorize you to claim designer credits and if you do so, you are required to link back to the designers in the footer, as your new theme would be considered a "derivative".
You may get the designer links removed for a small fee by contacting us. Failing to do so is illegal and your site could be reported to DMCA. You may re-design the footer links without removing the designer links.
#4 | Garrett Albright | 20 Jul 07 11:40
As I thought, that contradicts the GPL.


#2 | Garrett Albright | 20 Jul 07 11:07
It's a common scheme for companies to "sponsor" blog template designers in return for a link in the design's footer. That link gives some of your site's Google juice to the sponsor's site.
If they have actually released the theme files under a GNU GPL license, removing the footer links (or making any other changes to the theme) for your own use is perfectly fine; you wont be in violation of the license for doing so. As for being reported to the DMCA… How exactly can you be reported to a document? Perhaps whoever created that theme was also confused by copyright law.