So many people have gotten the ideas of Free Software confused with commerce. It is a commonly held belief that software released until the GPL cannot be sold. First off, there is nothing in the GPL license that talks about selling. And more importantly I think few authors of GPL software would want to prohibit people selling the software that they write. I am here to say quite directly: please sell the GPL software that I write! Please take it, use it, improve it, make a profit on it! All I ask are the terms that are in the GPL: that you contribute you distribute the source code and you contribute back improvements to me so I can include them.
While I happily accept payment for working on software, I also feel it is important that people are not required to hire me to work on the software that I wrote. If someone wants to pay someone to make improvements to Firmata, I will happily take on the job. But if someone is better situated to do the work, then hire them instead. For example, a competent person who can work in the same room as you is worth more than the expert you have to talk to via email.
I just came across OpenDNS, another service like Verisign’s SiteFinder that is using DNS-related error messages as a means to deliver their content. I think that commercializing error messages is a really bad idea. It might work very well for them as a company, who knows, I am not speculating on that. But that’s their business model, when you type in non-existent domain names, you are redirected to a page with ads. That will put an unhealthy pressure on something that should only be about clear communication.
Also, I think that things that automatically correct errors often cause more problems than they solve. A good example is HTML parsers from before XHTML 1.0. Basically, instead of giving errors when they encountered bad HTML, they attempted to guess the intentions and render that. That led to lots of pages that were unmaintainable because they were so obstuse and buggy. Then many pages wouldn’t run on small devices like phones, etc. because it takes to much CPU power to do all that error correcting.
If you look now at HTML, XHTML is definitely what people are using, which is actually quite strict. And instead of testing web pages on every single browser and version that people could think of, companies are now spending that effort on making full featured sites. All these AJAX sites are the perfect example, like Google Maps, etc.
And lastly, as Paul Vixie, one of the main authors of DNS software, pointed out, what’s the difference between typosquatting (i.e. googl.com going to a site with random ads) and this service? It’s really the same thing when you think about it.
I just read a short and interesting article in Free Software Magazine calling on the community to develop free hardware to solve the issue of free software problems when running on proprietary hardware. The problem with this article is that it proposes that we start by building free laptops and desktops. While that would be great, I think its quite unrealistic to expect the volunteer-driven free software development style to create such a large and complex project in a short time.
Instead, I think that the free software community can start small and make a meaningful impact, while learning how to develop any hardware device. A good example is the Arduino project. The Arduino is the free computer that you describe in the article, albeit a very small one. It is based around a 16MHz Atmel AVR ATMEGA8 microcontroller. It only has a USB connection and a bunch of analog and digital I/O pins.
This thing has more processing power than the first computer my family owned in 1986. That one cost almost US$5000, the Arduino costs US$35. You can build one yourself for less than US$10. The whole development environment and libraries are free software, available under the GNU GPLv2 (now that Sun released Java under that license [source]
Yes, its a small start, but there are some very important lessons being learned here. First off, how to create a manufacturing and supply chain for free hardware. That’s already working, you can buy the Arduino readily in North America and Europe. More work is being done along these lines in Colombia, South Korea, and other places.
Also, just like free software is architected and built in a very different manor than proprietary software from giant companies, free hardware is developed in a very different manor than hardware designed and built by giant companies. So that means we should not be purely thinking of imitating the models we see in the proprietary hardware world. Instead we need to find which models work best for free hardware.