Pretty much every single tool I use is FOSS. I'd really like to compensate the hundreds of projects I depend on, but this is surprisingly tricky. Consider this rant to be the other side of Zed Shaw's Why I GPL.
Giving credit is simple. I like talking about the various applications which make up my stack. I'd also like to compensate the developers whose make what I do possible. So, let's get the simple part out of the way: A decent percent of my profits will go towards the software used. For the sake of easier examples, I will make up a number. Twenty percent. Done.
Now comes the hard choices. A modern Linux system has a cornucopia of moving parts, all made by different people. Here's a quick run down of the major components in the Subpixel Favicon Generator:
- Python Image Library
- Arch Linux
This is a gross oversimplification. It ignores the tools used to make the site (where would I be without Screen, SSH, git and a text editor?), as well as ignoring the deeper layers such as GNU coreutils or glibc. Simplified example, simplified solution: give 5% to each of the four projects. This doesn't really seem fair, because some parts are much more critical than others.
There are other ways of divvying up the contributions. The 'criticalness' could be measured by replacement cost. Since the monetary expense is zero dollars, 'replacement cost' is really a measure of time and difficulty. Swapping distros or webservers would be comparatively painless to porting the application across languages. There is a deep flaw with this metric: standards are punished, lock-in gets rewarded.
Maybe measure how much the software gets used. This is also slippery. Time CPU seconds? If porting the software to Haskell makes it run twice as fast, does the faster language receive less as a 'reward'? Counting lines of code suffers the same flaw, punishing expressiveness.
Let's say I ignore everyone else, suffer a huge bout of NIH, reinvent every wheel and GPL each homebrew solution. Does this mean part of the 20% stays with me? I've already done that for slow libraries which required an excessive amount of hand holding. Except for the GPL bit, because the world has enough template systems.
Of course, all this is just wishful thinking while I have a negative net profit. There is still time to sort out the details.