Monthly Archive for June, 2005

LibDems vague on software patents

At the IT conference I am attending, the organisers conducted a straw poll of who opposed the impending Euro-software patent legislation. Everybody I saw was against it; The unambiguous conclusion is that software patents are harmful and the ‘economic majority’ of Europe’s IT industry who oppose software patenting.

In essence, a patent grants a monopoly on an idea. Patents were invented hundreds of years ago to protect the investments made by inventors. In return for publishing the designs of an invention (e.g. the plans of your contraption), and agreeing to license the idea for a standard fee, the government would protect that monopoly. This worked back in the 18th century because other inventors could study the designs in the patent-office and invent better machines.

The assumption of many MEPs appears to be that since patents appear to work quite well for contraptions they must also benefit software inventions. However there are critical differences between the world of software and the mechanical age that spawned the patent.

A central principle of computer-science is idea-reuse: Software languages are built to encapsulate ideas and re-use them. Any programmer can download ‘modules’ - collections of working functions. Some functions implement simple, single-minded ideas. Others amalgamate thousands of the simpler functions and can do complex things. The programs that you or I use in our day to day work are made of thousands of these complex functions, so it’s not unusual for any substantial work to contain millions of potentially patentable ideas.

Unlike a car or a steam-engine, a useful program is almost never a totally original work because re-use of ideas is so fundamental to what we do. The programmer who works at the leading edge of technology will almost certainly not be aware of which of the millions of ideas in a program are patented, and therefore any substantial program is likely to blunder into the patent minefield.

Software patents drive up the cost of innovation. Since any program is potentially infringing then all commercial software must be scoured for potentially infringing code before it can be sold. Of course, companies could opt to remain ignorant of their potential patent infringements, but if convicted of a patent violation the costs are enough to bankrupt most firms. Most companies would rather spend 10% to 20% of their annual profits on lawyers to audit their products.

In addition, rather than re-investing their remaining profits back into development, companies will feel pressured into building their own patent arsenals. A patent typically costs between £30k and £100k, so the more money we send to the patent office, the fewer productive computer-scientists we can afford to employ. This is why software patents cost jobs.

According to a friend who moves in parliamentary circles, there is at least one LibDem MEP who has not yet made his mind up about software patents. He told the FFII that if they can present two hundred signatures opposing software patents he would vote against the legislation. We managed to collect more than 250 from the delegates in the space of half an hour: a unanimous response against software patents

I believe that a vote for software patenting is misguided and harmful because it makes the best-practices of software development into something that is legally risky. In theory, any program that I write that is substantially useful has the potential to infringe somebody’s patents. The risk of accidental patent infringement will turn today’s playing-field into a minefield.

Software patents will harm me, and they will harm my customers. If any MEPs are readinf this, I request that you against software patents.

Plodcasting at Europython

Just a quickie, Nate Aune is demonstrating my Plodcasting system at the fabulous Europython conference; Nate created the ATAudio project which gives Plone support for multimedia formats.

A Zest for Crumpled Things

From the ghast spattered bowers of Gaar to the cast-iron gates of Hoon; a single voice resounds; His lordly voice booms with a gnarled yet mesmeric resonance; an extraordinary baritone addressing you with wistful oratory. He is Frank Key, sole begetter of the Hooting Yard.

Hooting Yard is a show on London’s Resonance FM. It’s been broadcast every Wednesday at 4 p.m., shortly after Epistaxis Time. I’ve recently started collecting episodes of Hooting Yard with a view to building the definitive guide to the recorded works of it’s author and reader, Frank Key. Yesterday I had the opportunity of plundering the rather shambolic resonance archive; I managed to retrieve 40 episodes of Key’s masterpiece. I suspect that there are at least thirty more episodes that have yet to be discovered, but these are on ancient and largely uncatalogued disk-packs somewhere in the cellar beneath Resonance studios.

The format of the show is simple; After a brief theme tune, Frank reads out a the week’s selection of short stories; They are mostly his own work, peppered with quotations from arcane and archaic sources.

The themes he tackles are diverse, for example one episode includes a story called “How I fell into the bottomless viper put of Gaar”, a brief biography of Professor Bindweed, a man obsessed with studying, cataloguing and understanding all aspects of the world’s bottomless viper pits.

The episode continues with the author pointing out a number of mistakes in Bindweed’s story; Specifically that the town of O’Hoolahan’s wharf (unlike Gaar) contains no viper pits, bottomless or otherwise. This item concludes with an extended letter of apology and it’s reply from the five fiendish burghers of O’Hoolahan’s Wharf.

Another favourite episode of mine is “The Book of Gnats”, an unusually long story which fills the entire half-hour time slot; It tells of the creation, loss re-discovery and destruction of the aforementioned book; the single fictional work of “Maud Glub”. Many of Frank Key’s best pieces are in the style of literary or artistic histories; All are of course pure splendid fiction.

While the themes of his stories are diverse, he has a few regular characters, most importantly ‘Dobson’, one of the 20th Century’s most prolific pamphleteers. Dobson’s name and date of birth are unknown (even to his creator), but his life’s adventures are chronicled in most Episodes. Dobson is portrayed as a brilliantly creative serial-obsessive whose wanderings rival Hemmingway

The most delightful thing about what Frank writes and reads is not the meaning of the content, but the manner in which it is written and read; Frank likes to toy with his words, re-arranging them like brightly coloured Lego bricks in strange and befuddling combinations. He clearly delights in literature of all kinds and is able to emulate those styles for his own comedic purposes.

Over the next few weeks I hope to build an archive of his work, that you my dear reader may benefit from his sweet sweet poetry.

Waiting for Bulldog

“Thank you for calling Bulldog Broadband. Your call is being held in a queue and will be answered as soon as one of our representatives is available. I’m sorry to keep you waiting, your call will be answered shortly. Once again, sorry about the delay.”

My internet connection has been non-functional since Thursday night; It just packed in around 8 p.m. and has not worked since. I would love to report the problem to Bulldog (my internet service provider) but I have no means of contacting them other than an email address which they never respond to or a phone line which they rarely answer.

Whenever I try to ring their technical support line, the calming voice of Bulldog apologies and then tells me that they are too busy to answer any technical support requests right now; They suggest that I try their web-site or call back later.

If this were some kind of performance art installation, or perhaps a figment from a Kafkaesque nightmare I could see the irony, however I am trying get my connection fixed a quarter of an hour before they close for the weekend. What hope do I have?

Actually, I lied about the email address; They do answer it sometimes - first you get a well worded (but automatic) response informing you that your query will be dealt with efficiently and with the greatest possible haste. This is another lie. My technical support query will be answered by a dribbling imbecile.

He or she will be barely literate, possessing neither the ability to comprehend nor to write simple English expressions. Only an insane optimist would expect the slightest technical acumen from the person who tries to answer my mail.
This illiterate will randomly push buttons on the computer they barely know how to operate, and if I am lucky, I will receive a barely coherent response to somebody else’s question in less than a decade. Having failed to make any sense from email support, my next attempt was to try the phone line…

Continue reading ‘Waiting for Bulldog’

Europython Conference, Day Zero

I’m off to the Europython conference; My heart is aflutter because I’m running rather late and I know how bad the queues for budget air-lines can be. I’ve never travelled on Ryan-air before and I am expecting the very worst possible experience. This is conference day zero because technically it does not start until tomorrow and in any case all good computer scientists make a habit of counting from zero.

Initially I was expecting a weak line-up; At the time I registered the presentation roster was empty and the attendee list was meagre; but in the last few weeks both have grown and I’m quite impressed at what the conference management have achieved. I’ve barely been able to keep up with the high-bandwidth conference mailing list.

This is also the first Open-Source conference I have attended; I’ve been told by frequent conference attendees to lower my expectations. Open source conferences have a minimal budget and therefore lack even the most rudimentary glitz; This will be a glitz free zone.

My accommodation is going to be a shared room in a student’s union owed building. I booked the cheapest kind of room available, so I will be sharing with three others; All will be python developers like myself; I have no idea who these individuals will be.

And what a fool I am; I’m still plagued by nagging doubts; What if there are two cities in Europe called Gothenburg, one in Sweden (where I am headed), but another somewhere far far away, perhaps in a destination that I will not possibly be able to afford to fly to. And I will be forced to spend a fruitless three nights in a cold Nordic country, all alone and unloved.

In any case; All my fears may be for nothing; I might not even get to the airport at this rate. As I type this, the train has been stuck on the tracks outside Stanstead for the last fifteen minutes, going absolutely nowhere.

pod.py - A minimal cross-platform “podcatcher”

I’ve been listening to a lot of podcasts recently; a particular favourite is “Escape Pod“, a weekly podcast which aims to revive the genre of the science-fiction short-story. The standard podcast reciever is iPodder, a very feature rich program that is just too bloated for my needs: I want a cross platform downloader that can be scheduled from UNIX cron and works from the command line.

I went hunting for an alternative client. The best I could find was Bashpodder: a pure bash podcast downloader. Bashpod features some of the best shell-scripting I have ever seen, but even code of this quality is a little bt ugly for me; Of course, what I really wanted was a Python based podcast reciever.

So I created pod.py - a pure Python Podcast reciever. It depends on the excellent 4suite XML processing library to do all the hard XML processing. If you want to try it out, you can get it from my subversion archive: http://svn.stodge.org/pod.py/trunk/

Instructions

1. Get the program: If you want to check the program out, and you have the command-line subversion program installed, you can type:

svn co http://svn.stodge.org/pod.py/trunk/

You also need to download 4suite. On windows you might need to download an run an installer. On Gentoo Linux you might need to type something like:

emerge -uD 4suite

2. Install the program: You can use python’s standard distutils isntaller to help you out:

python setup.py install

The program should now be installed. It’s really easy to use:

3. Use the program:

pod.py url -d downlaod directory

So for example, if I want to download BBC’s “In Our Time” podcast to a folder called ‘my_podcasts’, I can issue the following incantation:

pod.py http://downloads.bbc.co.uk/rmhttp/downloadtrial/radio4/inourtime/rss.xml -d /home/sal/my_podcasts

Hitchhiking Prisoner Graffitto, Archway Roundabout, North London

He’s been standing at the roundabout for the last two weeks… will somebody pick him up?

Hitchhiking Prisoner Graffitto

Could this be another work of the world-famous basstensil anarch-artists of Argentina, the people who created the Disney War stensil I reported on a few months ago? The style is certainly similar - finely detailed dual-tone stensil artwork.

Whats wrong with the Treo 650

My Treo 650 is an odd device; it combines one of the best interfaces of any mobile device with strong multimedia and is not a bad phone. On the other hand, it has many obvious omissions and deficiencies; It is as if device was designed by a genius, and then in a last-minute cost-cutting operation, features were removed at random by an angry monkey:

Its far to easy to bemoan the Treo 650’s lack of WiFi, and the lame excuses provided by PalmOne; who rather incredibly stated that it would be technically impossible to build a hand held device that could use Bluetooth, GSM and 802.11b.

It took the work of a gifted hacker to show that all Treo 650 devices are perfectly capable of using the PalmOne WiFi adaptor; exposing PalmOne’s rhetoric as the contemptuous bullshit. If only this were the only weakness holding back the Treo 650.

Clearly, this feature was disabled at the request of the phone company who greedily wish us to use their overpriced GPRS data-services for all networking; This does not quite explain some other glaring inadequacies of Palm OS;

For example why do we have to put up with Hotsync; the primary technology used to synchronize the Palm device with a PC. Hotsync was looking rather stale back in 1999 when Microsoft first unveiled their dynamic ‘ActiveSync’ technology which allowed real-time replication of data between PC and pocket devices. In the last five years Hotsync remains conceptually unchanged from it’s very first incarnation.

At this point Hotsync apologists will wonder what I am complaining about; after all it is the simplest cross-platform synchronization technology and it does a relatively good job of replicating simple data.

My gripe is that it is slow compared to modern replication techniques – one need only look at rsync to see how blindingly efficient synchronization can be. Hotsync devices cannot be mounted as file systems, making it tedious to load a palm with non palm-native files. For example, there is no convenient way to load a Palm device with MP3 files even though it is perfectly capable of playing them.

And while I am on the subject; why doesn’t Palm OS provide native Bluetooth and USB Mass-Storage emulation? Sure there are commercial products (costing about $20 each) that add this feature; but which palm user does not need to transfer files? Why are Palm not licensing these programs for all Palm OS users in an effort to be minimally competitive?

I am baffled that PalmOne cannot see the problem here; Microsoft users have been able to drag and drop files into their Pocket devices for years now; this feature is blatantly missing from Palm OS, which offerers roughly the same set of core features as it did five years ago.
Actually this is a theme that runs through the whole Palm OS experience; that of opportunities missed and a strange, antique selection of desktop applications which have somewhat failed to keep up with the times. Take multimedia – Palm has placed it’s trust firmly with RealMedia who have made one of the worst music-player applications for the platform.

Why make the device standardize on the least widely used audio format; wouldn’t it be best to bundle the system with a really good multi-format audio player? What about an audio player that could emulate a number of leading hardware MP3 players in order to work with the most common music library software. How hard would that be?

I think you get my drift here; The Treo 650 is a great device; Its still the best organizer phone. It is still the best for texting and overall ease of use, but it could have been so much more. A combination of corporate interests and a lack of imagination add up to a whole lot of wasted opportunity.