Archive for the 'Musings' Category

Simple Solution to Classic Problem in Software Development

Pick a good sized CS book and put it in front of your monitor so that it hides the screen unless you sit up straight.

Copyright and Delayed Release

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

Scalability

The world is a giant OS with a mysterious scheduling algorithm.

The State of Free Software

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 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.

Ice Programming

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 creator as sweet memory, nothing more.

When I was 16 I wrote with a friend an arcade game for the Commodore 64. It was a beautiful piece of software written in Assembler with heart breaking graphics. I dare to say it was one of the most technically advanced games ever developed for the Commodore but although we negotiated with several game publishers it was never released.

This game is now the software equivalent of Schrödinger’s cat experiment. It exists on a 20 years old 5.25 Inch floppy disk inside a plastic box at my parent’s house. There is a probability that it is still intact, but touch that diskette and it is gone forever.

Such is the fate of all software.

Revolutionary Technology

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.

Bigfoot Linux

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 need to close an application to start another if I don’t want the disk to start trashing around indefinitely.

Can anyone explain why on earth does a browser need 1.7GB of virtual memory to run 10 tabs and why does a code editor need 1.2GB to keep 10 files in memory? Is this anything less than utterly ridiculous?

Here is a slightly edited output from top:

VIRT  RES  SHR  %CPU %MEM COMMAND
1719m 736m 33m  29   24.6 firefox
1247m 514m 14m  0    17.2 netbeans
483m  67m  9508 5    2.3  Xorg
301m  48m  3700 0    1.6  apache2
301m  45m  4500 0    1.5  apache2
316m  39m  4496 0    1.3  apache2

Code is Poetry

Code is like poetry, difficult to understand and often has other meaning than intended.

The Spam Therapist

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 ;)

Superman, Where Art Thou?

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 investigate it.

For two years security experts and law enforcement agencies have no clue how to handle it or who is behind it.

http://en.wikipedia.org/wiki/Storm_botnet
http://www.schneier.com/blog/archives/2007/10/the_storm_worm.html
http://www.secureworks.com/research/threats/storm-worm/

Next Page »