Surely the internet makes software patents obsolete?

At least for internet connected devices. I mean why is it that companies bother fighting or capitulating when they could simply outflank the bastard patent trolls at no cost to themselves?

Armed with the internet, any half knowledgeable person can easily download copyrighted movies and music such that copyright protection itself is under threat. But for software patents its much much worse - in fact its so bad for patent trolls that software patents should be obsolete and totally worthless

IANAL but consider the case of a smart phone (or tablet or other mobile device). Surely all that needs to be distributed with the machine is a boot strap with a bare bones OS and the simplest of apps which are completely non-infringing on any patent held by a known patent troll . On startup, the machine just needs to be smart enough to inform the user they can download a fuller version of the OS + a whole host of apps which can infringe all they like of course. Provided the download server is out of the USA, there's bugger all a patent troll can do.

After all he cant go the US ITC to ban the imports nor can he sue the manufacturer, distributors or retailers cause the machine does not infringe anything. The only person who could be sued is the person who downloads the extra stuff but of course theres no way of finding that out nor would it make economic sense to sue them even if they did (the license fee a troll could expect to extract would be paltry compared to the court costs for the patent troll - they would go bankrupt very very quickly!)

If Google was smart, it should do something like the above for the forthcoming Android 3. The bare bones OS on it should not have any Java or things like the encumbered FAT filesystem but just the bare necessities to make it a phone without the smarts (and without infringing any patents of course). Then stick all the juicy patent encumbered stuff on a non-USA server for easy download and Bob's your uncle!

How Oracle can easily be defeated in its patent offensive against Android

Fortuitously it appears Oracle is a licensee of OIN (Open innovation network) which enforces the company to forego patent attacks against any product protected by OIN -

Makes you wonder why they dont add Android and Dalvrik to OIN's collection of protected technologies and hence do away with the attack (even if it cant stop backdated attacks it can at least leave the future clear). Google is also a licensee of OIN but maybe it needs to up its membership to the equivalent of one of the founders to enjoy this level of protection

Interestingly, OIN appears to be rather stealthy and no longer publishes a list of protected technologies (other than mentioning linux) nor does it make public any strategy or commitment to protect anything. It might be doing this to prevent patent trolls finding loopholes or to prevent the organisation from wasting resources in unwinnable situations. Then again, it might just be an impotent organisation with no real teeth or one that only caters to protect the interests of its founding members and no one else.

Its amazing how much power OIN has (100+ patents) yet does very little to prevent the likes of Microsoft, Apple and Oracle from their anti-competitive and unethical actions which result in terrorising users of Open source with patents. The only success it has had was to purchase a set of anit-Linux patents that Microsoft would have sold to a bunch of trolls. Time to end the moral cowardice of OIN if you ask me...

Why Android and Meego should merge

I have to say there is quite a lot I like about Android but there's always a few things that are done better in Meego (like not needing a constant Internet connection to use GPS maps and of course tracker integration!).

Meego is also more open to different developer languages of course so it occurs to me that merging Android and Meego would be an ideal scenario for both developers and end users.

With the recent Oracle suit, a merge would provide a good deal of insulation from a possible negative outcome in the case and at the same time provide a means to move away from Java completely if needed. Whilst I cant see Intel or Nokia objecting, given that it will propel them into market leaders, the big question however is would Google stomach such a move and give away some of the power and influence it has achieved to date?

Whilst Google proclaims its "do no evil" stance, it should not be forgotten that absolute power corrupts as well and were Google to knock out Apple and steal Microsoft's crown as well (Android + Chrome could be a killer in the enterprise desktop), who can possibly say Google would not become evil or at least a shade of grey in that department. A safeguard against that is to make sure power is shared and distributed such that no one company can take matters into their own hands. Thus a merge now is not only potentially good for everyone but vital to safeguard the future

On technical matters, a merge should not be a big deal. Whilst Android does not use X, it should not be hard to port Android to use it. Sandboxing is best done in the kernel IMO and there is already a neat JIT available for most lanaguages (LLVM) so portability wont be sacrificed either. I cant see Android losing anything and Meego would acquire a java platform in addition to its native platform

And last but not least, a merge would create a more friendly name too - Ameego :) (At least thats better than MeegoDroid!)

P.S. Yeah I know it will probably never happen but if Google is smart enough not to repeat the mistakes of Microsoft, it will know the value of sharing its power with friendly companies who can help it fend off patent attacks (the more defensive patents you have the better) and more importantly stop itself from acquiring too much power for its own good

Own goal

If you ask me, Oracle has scored a massive own goal by suing Google. Not least because if it expects to wrest back control of Java and make billions from it, it will surely be in for a massive disappointment. Heres why:

Despite Oracle's motivations (which I interpret as total disrespect/disregard for FOSS at best and pure malevolence at worst), its attacks are destined to fail. The copyright claim looks bizarre especially as everything is open source and publicly viewable and for all purposes consists of clean room stuff and the Harmony open source stuff. If there was any dispute here why wasn't examples provided? To me it smacks of wishful thinking and is surely a long shot. Worst case scenario is Google rewriting the offending code (if any) which should not be a big deal

The 8 salvo patent broadside also looks like a hit and miss approach and as they are more based on optimisation techniques rather than on restricting running of Dalvik code, it seems unfathomable that there's anything there that could not be coded around. Oracle would need to land a killer hit that would prevent execution of Dalvik code to have any chance of bringing Google to its knees and I cant see that happening. Chances are that one or two salvos may hit but they look like causing only minor damage which is easily repaired

So when the dust settles, what will oracle have achieved? I sure hope Google will fight and the end result could hurt Oracle big time

Oracle no doubt expects the following:

1) Google to concede and license Dalvik for billions

2) Oracle to pursue all manufacturers for similar license deals and loads more cash

3) Force Dalvik to comply with Java standards and put itself firmly at the helm of future java development

Here's what I think will happen instead:

1) Instead of billions it may only get a few tens of millions in damages due to the odd patent sticking and no license deal

2) Google will armour plate Android by coding around any weaknesses thus Android will become invulnerable to further attack and so Oracle will not be able to go after anyone else - the only damages it will receive will be for previous violations and not present or future ones and there's no hope of any license deal or further revenue. And there's plenty of time to do this as patent disputes take years to resolve if they go to court

3) Dalvik could become the new Java standard. If Microsoft proved anything, its that anyone with a half a brain steered clear of getting involved with them and Oracle is likely to develop a similar feared and loathed reputation that will drive Java adopters into Google's arms. On technical merit it also looks like Dalvik is way ahead of any other Java implementation too so its really bad news for Oracle here

So to sum up I would like to offer my congratulations to Oracle - you have lost big time!

And please Google go for it and make 'em suffer!

Best possible UK government

Normally Im turned off by elections in the UK - its just a great big lying campaign IMHO.

Also as my job is done online and I can work anywhere in the world, I have consequently left the UK for a better climate (not to mention to legally escape its pernicious taxes and endless form filling as well) so whoever is elected would not affect me personally

But this time it was fascinating and amusing to watch all the twist and turns (especially bigotgate).

I must admit I feared the worst for my country but the end result of a Tory-Lib Dem coalition is probably better than anything else.

First and foremost, Britain needs another Thatcher to sort out the awful fiscal mess left by the previous reckless administration which was obviously made a damn sight worse by the recession. Its frankly staggering that the UK is being compared to Greece on that front. With the Tories now back in power we should get at least some much needed improvement in that area

But what about the nightmarish hell that Blair/Brown descended on Britain in plunging us into wars and jumping into bed with Bush? Would the Tories be just as bad there? Well not when they are being propped up by the somewhat anti-American, anti-war Lib Dems. The end result is no more wars for the foreseeable future which should be a good thing even if Obama should lose out in a few years time

Other negatives for the Tories like their support of big business (also a negative for Labour) should also be moderated by the Lib Dems.

And with the Tories and Lib Dems appearing to be rather pragmatic and each sacrificing their more controversial policies, the end result, if it works, should be a very good, moderate and balanced government

Now lets see if we can persuade them to adopt more open source and help their budget deficit out at the same time...

Semantic desktop - piece of a jigsaw

Benjamin makes some interesting comments here which I would like to address

The semantic desktop, as implemented by tracker, cannot glean all useful semantic information by indexing alone. This is why there is a separate storage daemon (trackler-store) which apps can use to supply additional semantic info. However even that is not enough to realise its full potential.

So what is needed?

For me, a service orientated architecture (SOA) is needed for objects like contacts, music, images etc. This would span all local objects - eg your locally set up contacts, objects on remote machines (EG contacts on corporate address books like an LDAP server) and of course web service contacts (myspace, facebook etc). An SOA would require a federated database and the obvious candidate for that is tracker

I would also suggest that SOA implemetations be freedesktop based so all desktops can use them and allow KDE/GNOME to replace EDS and Akonadi for a common contact SOA

SOAs would also provide methods for importing/exporting contacts to various services as well as unifying all contacts under one umbrella.

SOAs can go a long way to eliminating duplicated code between desktops and competing applications. In one rosy future, all applications will end up being thin clients with their bulk of their function in SOAa and their data in tracker. Apps could then be created which use any platform (QT/GTK/NBTK/PYGTK/GTK#) with minimal of code. Dont like the UI or the toolkit? No problem, just rewrite it in super quick time

The biggest problem of course is not coding it but getting everyone to tango - it would require a monumental freedesktop effort that would need to overcome all the politics and factions. That sadly means it might not ever happen however...

One of the reasons Im more excited by a desktop variant of Moblin than say Gnome 3 stuff, is that I will be able to implement a tracker based SOA for it as it already comntains SOA stuff like mojito. I do envy the mobile folks as they have the power to forge their own mini desktop environment but who knows. One day soon you may well see a moblin desktop variant where semantic desktops and SOAs will power it.

Desktop Nirvana

As the desktop Summit draws to a close, I feel I have to point out what I thought was by far the best and most exciting thing I saw.

For me the award goes to Moblin 2 - it absolutely rocks and I want it on my desktop (and im considering making a desktop variant which would be more suitable than the current one which is obviously designed for small screened netbooks)

Moblin screenshot 1

Why does it rock?

If you attended the Moblin talk you already know the answer - its rocktastic design. The design that is sadly not always evident in other open source application.

Now dont get me wrong - there has always been varying degrees of successful design in Gnome, KDE and even Windows. But when it comes to the Apple standard of design, you either have it or you dont. And right now, Moblin apart, we are not even close!

With integrated web services, social desktop features and a really neat clutter based UI on top of rocktastic design - what more could you want?

(well ok besides tracker integration, vala/genie as dev language, use of favourite window manager like compiz etc etc which can all be done in a desktop variant)

Tracker at Gran Canaria

Unfortunately I only arrived Saturday night so I missed the fun with Stallman's keynote - hopefully a video will be forthcoming (I dont really care about the patent state of mono as Im just a guy that prefers native code for apps but it would be boring if there weren't anything controversial!) .

But I was in time to see the metadata session with Jos stream analyser and Ivan's presentation on tracker.

Tracker 0.7 is going to blow the bloody doors off and more!

The new architecture where tracker is split into a separate storage component (no indexing or monitoring just pure storage and query) and various optional providers (EG File indexing and monitoring, Facebook/flickr indexing, etc) should help revolutionise things.

Want the shared metadata capability and sparql querying of tracker store without the file indexing - no problem!

Want optional web service integration - no problem!

Want to provide your own custom providers - no problem!

Its tracker just the way you want it

Also good news for file indexing - its faster, leaner and much much more lighter on your system - heck it runs smoothly on maemo on N810 so you can be sure its gonna rock on your more powerful desktop

At some point in the near future, Im likely to write a new desktop shell/UI in Vala/Genie/Clutter that can fully utilise tracker and its web service integration but more on that later. Im very happy that Nokia and Codethink are both working on tracker backend which should free me up to do more front end work. More of my short term plans are to rewrite the tracker-search-tool to take advantage of the fantastic power that the next version of tracker will bring

Im also keen to get timeline and file audit info into tracker and nepomuk so we can do similar things to zeitgeist (which can use tracker as a backend as well) and will be needed by my new shell plans

Watch this space!

Desktop search hackfest

The hackfest has been really cool with lots of discussions and ideas

Of particular interest to me is just how far Nokia wants to integrate tracker into their devices. Suffice to say its massively and no doubt explains why they have contributed tons of code over the last 6 months via 6/7 paid developers.

I have to say Im very impressed with the list of ideas that they want tracker to do including being the database for their media player. Philip Van Hoof also showed me a really cool tracker powered file manager thingy but as some of this is potentially confidential I wont go into details just now

Its also good to know what makes a metadata storage daemon a success and in particular why tracker's database utilising a hybrid sql and custom triple store approach allows us both performance and flexibility which you would not get using say an RDF based backend

the key factors for a successful metadata daemon include:

1) ease of use - friendly API (XESAM scores big here). Raw RDF/SPARQL would potentially scare people off
2) high performance - sadly absent from RDF databases but not an issue with tracker's ability to denormalize triplet data into flat tables for key or important metadata.
3) Extensibility - not so great if you cannot extend it

At the end of the day we dont want application developers to resort to creating custom sql databases to service their needs which is what will happen if a metadata daemon does not satisfy all of the above.

Anyway thats not to say tracker is perfect in this area yet and there will be some more work to create dedicated media databases which are flattened and comparable in structure to databases like banshee and rhythmbox use. Im confident we can deliver 50,000 music tracks complete with key metadata in a fraction of a second with the soon to be implemented improvements.

Along with the integration of a custom sqlite FTS module that im working on I believe it will make tracker's goal of world domination one step closer as well as giving us a rocking mobile desktop thats fully integrated and far faster and more intelligent than what we currently have.

The next generation desktop is happening now in the mobile space and with a clutter based UI expected in the next generation tablet from Nokia complete with cell phone ability, that future device should easily match the iphone (if not beat it)

I cant thank Nokia enough for having the vision and the resources to make it happen. Its also great that companies like Nokia are now going overboard in investing in exciting free software projects and getting their work upstream.

I hope we will have the same level of excitement in our Gnome desktops that exists in the highly innovative mobile space in the not too distant future and Im sure it will happen if other companies follow Nokia's example.

Genie Improvements

I know there is a lot of excitement generating around this uber cool new Genie programming language and i am happy to report more progress including more documentation at that site (i know more needs doing there + more examples but they are on the way)

I have now made lists (dynamic arrays) and dicts (hashtables) first class datums in Genie. As they utilise the tiny and useful libgee, you will need this library installed if you make use of these. You will also need latest svn version of vala too.

Anyway here is a small taste of lists and dicts in action:



    /* test lists */
    var l = new list of string
    l.add ("Genie")    
    l.add ("Rocks")
    l.add ("The")
    l.add ("World")

    for s in l
        print s
    print " "
    l[2] = "My"
    for s in l
        print s

    print " "

    /* test dicts */
    var d = new dict of string,string

    d["Genie"] = "Great"
    d["Vala"] = "Rocks"
    for s in d.get_keys ()
        print "%s => %s", s, d[s]

to compile you must use libgee so compile with:
valac --pkg gee-1.0

output is:
Vala => Rocks
Genie => Great

The big advantage of embedding lists and dicts in the language is that it makes it much easier for the developer to make use of them. It also means genie can make decisions about which hashing and equal functions to use based on the types (Eg for a dict of string,string it would use the glib g_str_hash and g_str_equal functions automatically although you could of course specify different ones by setting the properties explicitly) whereas in vala you would have to type something like :
var map = new Gee.HashMap<string, string>(GLib.str_hash, GLib.str_equal);

which is a bit long winded and embedding them allows us to avoid this.

Anyway in the future we also want to support initializers and type inferencing of the list/dict EG the above dict in the future could be created as
var d = {"Genie" = "Great", "Vala" = "Rocks"}

but that of course needs more work!

Also I have create a feedback wiki page for genie here so feel free to put suggestions there (but be nice!)