Ever since I discovered Free Software I was haunted by the problem of developing software sustainably. Today I would like to suggest a possible model which may be suitable to individual developers and small business. That is, distributing software using relaxed non Free Software license, combined with releasing each modification as Free Software a determined time after its introduction, or in other words - Delayed Release.
This approach may be inline with views expressed by Richard Stallman in an interesting article on Copyright by the title “Misinterpreting Copyright—A Series of Errors” (1). Referring to copyright on software he writes “In my own field, computer programming, three years should suffice”. Stallman does not reject copyright as a concept but is interested in “Finding the right bargain”.
Possibly the most well known scheme for developing Free Software profitably is that of charging for related services. The problem is this model requires business skills most software developers do not have and is often not even applicable.
With Delayed Release, software developers may have easier time developing Free Software profitably, leading to increase in production of Free Software. Once people find that ideals of Free Software can practically co-exist with their realities, those ideals will have easier time spreading.
(1) http://www.gnu.org/philosophy/misinterpreting-copyright.html
rfoo is a new Python RPC package which can do 130,000 IPC calls per second on a regular PC. It includes a fast serialization module called rfoo.marsh which extends the Python built in marshal module by eliminating serialization of code objects and protecting against bad input. The result is a safe to use ultra fast serializer. Go get it at http://code.google.com/p/rfoo/
Interface of rfoo.marsh
rfoo.marsh.dumps(expression) rfoo.marsh.loads(binary_string)
Serve RPC method to clients
class MyHandler(rfoo.BaseHandler):
def echo(self, str):
return str
rfoo.InetServer(MyHandler).start(port=50000)
Call method on RPC server
c = rfoo.InetConnection().connect(port=50000)
rfoo.Proxy(c).echo('Hello, world!')
It is easy to identify a Free Software project. It includes the term “Free Software” in its website. Open Source projects created by corporations, by hackers who reject the ideals of Free Software or by developers who do not know the difference NEVER include the term.
Some notable Free Software projects are therefore:
http://www.debian.org/
http://www.gnome.org/
http://kde.org/
There are of course many others and please comment with your favorite ones, but in fact, if you try to think of a recent notable FOSS project and check out its website you are most likely to find it is an Open Source project rather than Free Software.
For example, Apache, Lighttpd, MySQL, PostgreSQL, Python, Django, Drupal, Firefox, Ubuntu and others.
For those of you who wonder what the difference between Free Software and Open Source is, I recommend the following article: http://www.gnu.org/philosophy/open-source-misses-the-point.html
There can be several reasons why this is the state of Free Software. I believe one of them is that there is no economical energy behind Free Software.
Where I live the media goes on and on about how The Iranian people is using web technology against its regime - for example Twitter, Youtube, e-mails and also cellular phones, SMS, etc… These technologies are described as giving an upper hand to the people as opposed for example to the revolution which took place 30 years ago.
I think this technology is actually being used against the people. You can not use it without being completely exposed. Anyone using it is being monitored and ironically has his/her social network mapped. Once someone is determined to be an organizer or worth the effort of taking down, he/she can be easily arrested.
Standard captcha are either broken or are an accessibility nuisance or both. In its most noble form - reCaptcha - it is used brilliantly to digitize books and provide people over at India with a living:
http://recaptcha.net
http://blogs.zdnet.com/security/?p=1835
http://www.w3.org/TR/turingtest/
Smart engineers all over the world are busy trying to invent the most inaccessible new generation captcha possible, which typically involves analyzing or playing around with images.
However, it came to my mind recently that there might be another way, accessible and more faithful to the original Turing test (en.wikipedia.org/wiki/Turing_test). Can a computer administer an effective textual reverse Turing test to block registration spam? Can Eliza, the friendly nonsensical therapist, the famous first Turing test runner up, do that?
Imagine you try to register a new account at web20.com and suddenly Eliza pops up and asks you to elaborate on why you chose to submit the spammy looking email address john23kjdsf784@mail.ru
Seriously, spam filters such as Akismet (for blogs) or Gmail have become so efficient that they have practically eliminated comment and email spam. By requiring a registrant to submit enough textual information it may be possible to apply these filters to registration spam.
In addition, such a conversation, while being entertaining enough for the casual registrant, can be too time consuming for professional-human-captcha-solvers, relieving the potential problem of relay attacks.
Finally, if a new developer vs spammer war ensues around chat captcha we will soon see the first computer to pass the Turing test
LAMP web hosting can evolve to offer the scalability of Google App Engine (GAE for short).
As discussed in the post “Google App Engine Limited”, GAE does not currently scale bigger than a dedicated server. What it offers is “natural” scalability up to that size and “pay for what you use” billing.
With traditional VPS hosting you can allocate resources manually. You do not have automatic resource provisioning, and as a result you either don’t have enough resources for your service or you pay for more than what you use.
However, Xen virtualization (used by VPS hosting) could evolve to offer automatic resource provisioning, and “pay for what you use” billing as well. It is already possible to move VM between physical servers with no service interruption. A controller could be designed to optimize resource allocation per server, migrating VM as required, for example migrating small services in response to slash-dotting, combining high-bandwidth low-CPU services with low-bandwidth high-CPU services, or automatically matching services which have complementary load patterns.
Tip the author of this program 
Would you ever leave a restaurant table without tipping the waiter?
Would you ever pause to enjoy street music without tipping the players?
Would you ever get out of a cab without tipping the driver?
If you don’t think Winpdb is worth a cent or a minute of your time, why use it?
Here is my five-months-late take on the Negroponte-Microsoft love story announcement. It is an ironic story in which the FLOSS community is harnessed to pull the OLPC wagon to Africa and goes ballistic when told that they have to carry Microsoft in that wagon as well. I say that anyone in that community feeling betrayed can only complain of his or her own ignorance.
Take a look at Negroponte’s announcement (http://www.olpcnews.com/people/negroponte/nicholas_negroponte_sugar_olpc.html): The term Open Source appears 27 times in the announcement and comments while Free Software appears in one comment only where it is being slammed. Take a look at the Wikipedia article on OLPC (http://en.wikipedia.org/wiki/Olpc): The term Open Source appears 7 times but nothing there on Free Software.
Well, isn’t Open Source all about that corporate-friendly magical method for creating high quality software? Not about user freedoms or hating a particular corporate. You would think the FLOSS community members who feel strongly about something would actually know what it means, right? wrong.
And guess what, there is a two years old interview with Stallman on YouTube in which he warns of such an occurrence (http://www.youtube.com/watch?v=fBogiLGPMwA). This is what he says beginning on minute 08:45: “I ask you to please always call it Free Software because that way you will encourage other people to pay attention to the question of freedom. The term Open Source was formulated by people who did not want to talk about freedom and that is the stupidest thing any people can do. If people don’t talk about freedom it gets forgotten and then somebody says ‘if you will just accept these little restrictions, here is this convenient pleasure you can have’, essentially saying ‘we will sell you something in exchange for your freedom’. And if you have not been thinking about freedom and realizing what freedom means, you might accept that poisonous deal and then your freedom is gone.”
First I chose GPL for Winpdb, then only 2 years later I actually discovered Free Software, what it stands for and the fascinating universe behind these two words, but now a year later I have stumbled on a problem.
GPL is a tool that uses copyright to enforce software freedom, but… in order to be able to enforce that there must be a copyright holder that can take action. The FSF is aware of this and is carefully requiring contributors and their employers (!) to sign legal papers of copyright transfer: http://www.fsf.org/licensing/licenses/why-assign.html
The problem is that most GPL projects can not afford to force potential contributors to get their employers to sign legal papers as it will reduce the number of contributions to 0 and therefore the copyright to their projects is either dispersed among the different contributors or even worse, is questionably held by a single person or entity (with emphasis on questionably).
What does that practically imply on GPL?
On my search for answers I stumbled upon an interesting article from the year 2000 in Advogato (A recommended site). It became even more interesting when I spied a comment by one Bram Cohen who at the time was little known in the Universe as he did not yet leave his job to write BitTorrent: http://www.advogato.org/article/183.html
I would appreciate your educated opinion or a reference to articles on this subject.
Would you like to have a usable GUI builder for Python? Do you feel as I do that such a tool is missing? I have been planning it in the past months and an initial document is available at http://winpdb.org/cgi-bin/moin.cgi/GuiBuilder. I would love to have your opinion. I will only be able to develop this project effectively if I can find a sponsor so it is currently being developed rather slowly on my spare time.
Tychod stands for Tycho debugger which is a reference to a story/article by Richard Stallman called “The road to Tycho” about a world where possession of a debugger has been made illegal to prevent people from working around DRM mechanisms.
An interesting point that Stallman discusses in another article “The GNU Project” is that popularity of free software is spreading faster than the philosophy of freedom that motivated it. This is what he says:
Estimates today are that there are ten million users of GNU/Linux systems such as Debian GNU/Linux and Red Hat “Linux”. Free software has developed such practical advantages that users are flocking to it for purely practical reasons.
The good consequences of this are evident: more interest in developing free software, more customers for free software businesses, and more ability to encourage companies to develop commercial free software instead of proprietary software products.
But interest in the software is growing faster than awareness of the philosophy it is based on, and this leads to trouble. Our ability to meet the challenges and threats described above depends on the will to stand firm for freedom. To make sure our community has this will, we need to spread the idea to the new users as they come into the community.
But we are failing to do so: the efforts to attract new users into our community are far outstripping the efforts to teach them the civics of our community. We need to do both, and we need to keep the two efforts in balance.
Pick a good sized CS book and put it in front of your monitor so that is hides the screen unless you sit up straight.
Someone should slap these guys on the head.
Today I visited the Winpdb Google Group and was shocked to see it was swamped with SPAM. I never got notifications for any of that SPAM. So, I thought what the hell, I will clear the mess in a second. I was in for a surprise. Google [...]
jpc is a fast Python JSON RPC package, partially compliant with JSON-RPC version 1 - http://code.google.com/p/python-jpc/
I started jpc trying to figure out why an existing Python RPC package was slow and before long I found myself hacking at a new package [...]
The world is a giant OS with a mysterious scheduling algorithm.
Programming is like Ice Sculpting. For me programming is an art form. At its best it is driven by muse, involves a technical achievement, and is a form of expression. But as an art form programming is like Ice sculpting. It lasts for 5 to 10 years and then returns to the mind of its [...]
I’ve got a Core 2 Duo with 3GB of memory running Ubuntu 64 bit and it can barely handle 3 or 4 applications I use for everyday development work.
Both memory usage and CPU load are annoyingly high. Firefox has about 5-10 open tabs and needs restarting every day or so unless it crashes unexpectedly.
I typically [...]
Code is like poetry, difficult to understand and often has other meaning than intended.
Two years late I have stumbled on this ongoing unreal Gotham style cyber crime - the Storm Botnet - An ants-nest like hydra made of 100,000 to 50,000,000 infected computers using p2p technology with enough combined power to knock countries off the Internet, involved in a variety of crimes and attacking any institute attempting to [...]
Can someone enlighten me to the fundamental difference between Amazon’s EC2 service and a standard dedicated hosting service?
Today I chatted with a support person from Rackspace “cloud” servers and tried to figure out if there is any technical difference at all between their service and Slicehost’s VPS hosting. “No” she admitted, “They are identical”. They even use the same server specs.
Some people are under the impression that the Google App Engine (GAE) will allow their application to scale as big as earth. However, if you read their quota document you will notice there are limits even for billing-enabled accounts which limit GAE to the scale of about 1 or 2 dedicated servers.
The CPU usage is [...]