Update, 2007-12-15 @ 1pm PST: Welcome Slashdot readers! Please see my other blog posts on the matter before jumping to make a comment: the first, second, third, and fourth.



Paint.NET’s license is very generous, and I even release the source code. All free of charge. Unfortunately it gets taken advantage of every once in awhile by scum who are trying to profit from the work of others. I like to call this backspaceware*. They download the source code for something, load it up in to Visual Studio (or whatever), hit the

backspace key over the software’s name and credits, type in a new name and author, and re-release it. They send it to all the download mirror sites, and don’t always do a good job covering up their tracks.

There is currently an individual who is doing this with Paint.NET. I won’t mention them by name or link to them in order to avoid pumping up their PageRank. Basically what they’ve done is downloaded the Paint.NET v3.10 source code, renamed it and changed the credits, removed the license and copyright notice (which violates the Paint.NET license, btw), plagiarized a bunch of content from the Paint.NET website, and bundled half the plugins from the Paint.NET forum without any of the authors’ permission.

That last one really pisses me off. It’s not enough to take advantage of my generosity, he has to backstab the altruistic community as well. “My paint program supports all sorts of cool effects and file formats!!!” Yeah jerk, because you ripped off the work of 50 people by blatantly violating United States copyright law. What’s even more entertaining is that this is the third time this guy has done this! He’s also been known to do this with all sorts of other freeware applications that are nice enough to release the source code. Oh, and did I mention when you install this guy’s backspaceware that it uninstalls Paint.NET? It also tries to use the same installation directory, %PROGRAMFILES%\Paint.NET.

(Don’t worry I used a virtual PC) He didn’t even remove the LICENSE.TXT files from the plugins he stole, which correctly cite themselves as Paint.NET plugins.

Real innovative work there, bub. I hope he puts this on his resume and someone asks him about it during an interview – that would be an entertaining conversation to watch.

Manager: “So you ripped off Paint.NET and a bunch of plugins, and re-released it with your name on it?”

Him: “Yup!”

Manager: “Cool! Welcome to your new job at Clown Burger. Make sure to ask customers if they want fries with that.”

Him: “I get free lunch right?”

I went and searched through my Inbox for his name because I wanted to find the e-mails I sent him the last two times he did this. What I also found was that awhile ago I actually gave this scumface technical support when he was having trouble installing Paint.NET! It’s so nice that he’s turned around and dumped on my face to show his appreciation.

To combat this and a few other similar instances that have happened over the years, I believe I will change the way that I release the source code for Paint.NET. As a stopgap before the v3.20 release, the version 3.10 source code is no longer available, starting immediately, while I finalize on this decision. It just feels like it’s a disaster waiting to happen with the way I’ve been releasing it so far.

Here are the changes I’m thinking of:

I will no longer be releasing the source code for the installer. I will no longer be releasing the source code for PaintDotNet.Resources.dll, which has the code for loading resources as well as all the graphics (icons, logo, etc.) I will no longer be releasing the text and graphic resources in the source code distribution (RESX files, icons, logos). This includes the translations to non-English languages. I am still contemplating how much of PaintDotNet.exe I want to release. Especially parts such as the updater and core parts of the main UI that I’ve spent a lot of creative energy on.

The goal is to dramatically increase the amount of work required to release a backspaceware version of Paint.NET. The first one clearly does this. The 2nd and 3rd make it much harder to change names, credits, and logos. The 4th one makes it much more difficult to rip off the UI or “shell” of Paint.NET.

Plugin authors often need something to debug with, and I still want to ensure that people can study the source code for educational or honestly innovative purposes. These consumers of the source code don’t need access to the resource files: you can just use the PaintDotNet.Resources.dll and PaintDotNet.Strings.3.resources that ship with the regular download. However, by making it more difficult to commit a “backspace violation”, I am hoping to put an end to this and other lazy copycat schmucks.

A lot of software implements copy protection to save profits, but I’ve never really believed in the stuff. It’s unfortunate that I have to investigate these measures in order to help protect myself and others from lazy ripoff jerks.

* Someone else suggested “thief-ware”, but I think that implies at least a little planning and cunning. I believe that “backspace”-ware correctly infers the level of simple laziness and lack of any real skill.