Wednesday, November 29, 2006

Oh yes it is, oh not it's not ...

There is wonderful article on the Patently-O blog, regarding the definition of obviousness in US patent law.

It links through to an article by Mark Smith which provides the following comments on a 1976 case:-

the opinion states that “a patent for a combination which only unites old elements with no change in their respective functions” is obvious. Furthermore, the Court requires the combination to be “synergistic” (resulting in an effect greater than the sum of the several effects taken separately). However, the very next sentence in the opinion says “[T]his patent simply arranges old elements with each performing the same function it had been known to perform, although perhaps producing a more striking result than in previous combinations.”

A ruling which states that combining old (or known) elements together despite producing a more striking result than in previous combinations is not unobvious - that sounds like sense.

I'm a great believer in patents for promoting technological innovation rather than protecting inventors rights.

The key is promoting technological innovation.

This is why :-

1. I'm all in favour of harsh tests for non-obviousness, in fact I'm much more inclined to agree with a demonstratable "flash of genius".

2. With increasing velocity of information and an associated acceleration in discovery (well just look at all those patents!) - I'm also more inclined to agree with a situation where the term of a patent is on a case by case basis with an upper limit. That term to be decided by the length of time in which society could be reasonably expected to independantly discover such a "flash of genius".

3. I don't agree with non-technological innovations being patentable and I do believe in a robust definition of what is technology, on the basis that everything else is excluded.

4. I would agree that patents are redudnant (and therefore should be excluded) where alternative, beneficial and major means of promoting innovation exist (for example open source in software).

5. I would agree that a patent which is not reasonably and meaningfully used in a commercial sense, giving due consideration to the inventor, is not enforceable as it has more to do with protection than promotion i.e trolling.

But then I'm not a patent lawyer. I'm just a great believer in patents as a tool for promoting technological innovation and nothing else.

Tuesday, November 28, 2006

A little more dabbling ...

Had a few moments spare, so I've been playing around with a few ideas.

I decided to add Technorati entries and tags into my "mood" page. This was simplicity itself.

There is no error handling at the moment - so if it bombs, it bombs. It's a bit slow because I'm pulling data from other services, combining on the server and then serving.

All that was needed was a few bits of JavaScript like :-

function processTechnoTags( tagList ) {
var subset = {};
subset.blogs = new Array();
subset.count = tagList.document.result.postsmatched;

for ( let aBlogId in tagList.document.item )
subset.blogs.push({
title:tagList.document.item[aBlogId].title,
link:tagList.document.item[aBlogId].permalink});
return subset;
}


and suddenly, hey presto I've got entries from Technorati as well as Flickr combined together. Again this is from someone who doesn't know JavaScript in detail!

Ok, it's all server side at the moment, no AJAX stuff yet but I like this language ... lots, it couldn't be simpler.

This isn't even going into the persistance side of things, which for an old DBA like myself is child's play.

Easy does it ...

Well I don't know JavaScript or HTML and I haven't coded in a long time (the last time was languages like C++ / VB and C - however even then most of my work was in heavy databases)

So I wanted to see how quickly I could build and release a web application. I decided to build a "mood" finder - the idea would be that the service would extract data from multiple different sites and determine the "mood" of the internet.

To begin with I'd make things simple and just extract "mood" from one site - in this case I chose Flickr and to make it even simpler I'd just extract images and tags related to four predefined words - happiness, sadness, fear and hope.

So steps to be done.

1. Get a web server somewhere
2. Install programming language and other necessary items
3. Write a web site which extracts information from a public API and displays it.

Hmmm.

Well I skipped steps 1 + 2 by just using Zimki.

I created a new realm, with the following URL and added some javascript and template code (see below)

All done - approx 1 hr (with about 5 minutes help from James), and it only took an hour because I didn't know JavaScript and HTML!

Now to combine with some other sites and provide something more useful or maybe just add something AJAX like - just to show how quick it can be done.

Gosh, this is easy ...

P.S If my code sucks ... well, I'm just learning the language so give us a break!


JavaScript Code
================
zimki.library.require('library', 'trimpath.js');

var fapikey = 'add your own Flickr key here';
var url = 'http://api.flickr.com/services/rest/';
var photo_url = 'http://static.flickr.com/${photo.server}
/${photo.id}_${photo.secret}_s.jpg';

function processPhotos( photoList ) {
var subset = {};
subset.count = photoList.total;
subset.urls = new Array();
for ( let aPhotoId in photoList.photo )
subset.urls.push( photo_url.process(
{ photo: photoList.photo[aPhotoId] } ) );
return subset;
}

function processTags( tagList ) {
return tagList.tag.map(
function(o) { return o._content; } );
}

function jsonFlickrApi( d ) {
if (d.photos) return processPhotos( d.photos );
if (d.tags) return processTags( d.tags );
}

function getPhotos( aTag ) {
return eval(zimki.remote.get(url,
{method: 'flickr.photos.search',
api_key: fapikey,
tags: aTag,
per_page: 8,
format: 'json' }
));
}

function getTags( aTag ) {
return eval(zimki.remote.get(url,
{method: 'flickr.tags.getRelated',
api_key: fapikey,
tag: aTag,
format: 'json'}
));
}


function runapp() {

var tags = ['happiness','sadness','fear','hope'];
var moodData = {};

tags.forEach(
function( aTag ) {
moodData[aTag] = {};
moodData[aTag].mood = aTag;
moodData[aTag].photos = getPhotos( aTag );
moodData[aTag].tags = getTags( aTag );
}
);

return zimki.render.trimpath('index.html',
{moodData:moodData});
}

zimki.publishPath('/', runapp );


Template Code
============
<HTML>
<HEAD>
</HEAD>
<BODY>

<TABLE border="1">
<CAPTION><EM>A table of moods</EM></CAPTION>
<COLGROUP align="center" width="20%">
<COLGROUP align="center" width="50%">
<COLGROUP align="center" width="20%">
<COLGROUP align="center" width="10%">
<TR><TH>Mood<TH>Photo<TH>Words<TH>Count

{for moods in moodData}
<TR><TH>${moods.mood}<TD>
{for photo_url in moods.photos.urls}
<A HREF='${photo_url}'><IMG border="0" height="150"
width="150" src='${photo_url}'</IMG></A>
{/for}
<TD>
{for tag in moods.tags}
${tag}
{/for}
<TD>
${moods.photos.count}
{/for}

</TABLE>

</BODY>
</HTML>

Monday, November 27, 2006

Render unto Caesar the things ...

According to the Register, Intelligent Design (ID) is on the way to the UK.

The scientific method of study is a body of techniques for acquiring and correcting knowledge. It is based on gathering observable, empirical, measurable evidence, subject to the principles of reasoning and is falsifiable, provisional and testable at the very least.

ID has no method of testing and is not falsifiable, it's therefore a principle of faith - it "holds that life on earth is too complex to have evolved on its own, without an intelligent entity guiding its path".

In short, a theory in science can be useful and the best we have until a test proves it to be wrong or a better theorem is developed - this is scientific progress. Beliefs of faith are by their very nature untestable - if they weren't they wouldn't require faith.

Now there is nothing wrong with belief in ID, though I studied Natural Sciences I certainly wouldn't argue that there are any absolute truths in science - in fact the study of science predicates against this.

It's just that ID is a matter of faith and it belongs in a RE lesson - it's not a matter of science, never was.

Tim as Tito ...

Well I'm a great believer for having a vision of where you want to go. I'm also a great believer in the bazaar being a tool for certain areas and the cathedral for infra-structural issues.

However, when something is new or fledgling - imposing or desiring to impose a method of operation rather than allowing a standard to emerge is almost always folly.

So have a vision, don't impose operating restrictions, allow the melting pot of human creativity compete with different ideas and then support the emergent standard if a standard is necessary or beneficial.

This is what is happening with web 2.0. A melting pot of ideas, from which standards are being rapidly created or adopted, for example REST over SOAP, Mapstraction etc

Of course this is a nightmare for any purist or committee that wishes to control or impose their own idea of how things should operate. Such evolved behaviour or evolved standards bypasses the need for committees or imposed computing standards.

You can almost hear the nashing of teeth as the purveyors of what is "right" discover they are irrelevant.

So we come to Bill Thomson's tirade against web 2.0 and his description of Tim "Marshal Tito" O'Reilly.

Tim's vision or collection of concepts into his vision does nothing to state how things will operate. It is more a description of important concepts (from open data to commodisation of operating environments to social participation to rich interfaces to new business models to a data centric view) and describes a progression to a different type of web. It subscribes to the view that this is not dictated to but is emergent.

Bill however takes issue with this, describes it as window dressing and a dictatorship and says you can't build "real" applications with javascript and XML. - these are important computer science issues which any "good" computer scientist would agree with him (therefore assuming that disagreement makes you a "bad" computer scientist).

A "real" application is one that is used and is useful and has no bearing on language or transport protocol. As for supporting messages between distributed objects - well those are standards which will emerge rather than be dictated to.

Bill's thesis is we should stop all this, as there is the real chance of it turning into a nightmare. That's a mantra against creativity, against the melting pot.

So is this a case of the kettle calling the pot black?

It's not Tim who is Tito ...

Things improve ...

Well the new machine from DELL works perfectly, which I am very happy about.

Furthermore I received a phone call from customer services to check that everything was satisfactory. I explained my experience to them, they will investigate and find out what went wrong.

That one phone call has started to turn around my "DELL experience".

Amazing what a little after sales support does.

Do we have to change?

I've read an excellent blog entry by Nicholas Carr on SaaS adoption. It is timely as utility computing including commoditised web operating environments (CWOE) and SaaS were a major focus of the web 2.0 summit this year.

[@swardley 19/11/2010 N.B. the term CWOE was renamed later to FaaS (Framework as a Service) in early 2007 and then became PaaS (Platform as a Service).]

Now I'm a vested interest running a company that provides a javascript application platform as a CWOE that we are open sourcing next year in order to create competitive hosting environments for our own platform.

Why? Because we need competitors for our customers to shift to and without such a move we cannot release our grid components, which enables a company to shift from one CWOE to another and back again. It also allows those with large hosting infrastructure to sell "space" back into the grid.

The big issue with many of the services today such as EC2 is portability. Yes, you can access your data but there is no where else to take it unless you build your own - Amazon's issue in my view is that there isn't a Google EC2 or a Microsoft EC2. Taking it back in house, is often an expensive process (in terms of machinery and man power) and most company hosting centres are massively under-utilised (approx 80% under-utilisation is the norm according to Jeff Bezos talk at web 2.0)

Economies of scale and portability are critical issues in SaaS and the CWOE scene, and central to creating an elastic grid of computing services.

There were a number of comments on Carr's blog, which raise some interesting points.

1. Software as a customised service is more likely to become the trend?
It all depends upon whether we are talking CODB, CA or transitional. There is a pre-occupation with customisation and a industry that does rather well out of it. A more likely scenario in my view is that as SaaS is adopted and the industry becomes more portable combined with a greater awareness that much of IT is CODB - then companies will be able to more clearly see the cost vs benefit of customisation. This I suspect will lead to less customisation in CODB areas (CRM, ERP etc) and not more.

2. Control, Flexibility and ROI are key?
The control and flexibility arguments can be covered in general by portability and commoditisation - no point in rehashing the arguments. However ROI? Well it seems (and experience backs this up) that companies on average use less than 20% of the computing power of their hosting environments. And almost two decades of personal experience tells me we are in a industry which just loves to rebuild the wheel. These are both areas which cause a large amount of waste and duplication and therefore are ideal for economies of scale especially in the CODB area.

Now let's make a clear distinction between CA and CODB.

CA (competitive advantage) depends upon differentiation, however if all your competitors are all using CRM or ERP then there is little or no CA (aka the warren buffet loom argument) in such systems (except of course unless the CA is in the implementation phase, as per Andrew McAfee's point on execution, which shows that a company may gain competitive advantage through implementation if the rest of us are so poor at doing it).

The majority of IT is CODB (a reason I'd suggest for the lack of correlation between IT spending and value and the need to focus on as "cheap as chips" approach - see Strassmann's site for more illumination on this matter). In general any savings are passed onto the customer if this is CODB - so the ROI arguments are often spurious at best, it is more a necessity to compete rather than any advantage.

As with all processes which become commoditised, there are always the vested interests who encourage customisation under the old argument of "customised for your needs", "to gain a performance advantage" etc - this is not for the benefit of the company implementing but the vested interest.

So I don't buy the flexibility, the customisation or the ROI counter-arguments. In my world these are the arguments of keeping the status quo - when what our industry needs is this change.

Saturday, November 25, 2006

Better late ...

Finally the DELL machine has arrived at 1:00 pm (a mere two+ hours late). I'll be interested in what time they will claim they delivered on the online tracking system.

Well, since purchasing the machine I have had two broken promises (delivery times) and one outright lie (attempted delivery time which was not true).

The box is in front of me - I just hope it works.

Here goes ....

Hmmm, maybe I've wandered into DELL HELL ...

A couple of months ago I wrote about my wonderful experiences with Nissan - a company that takes customer service to its heart.

Well, this is my experience of DELL.

I recently bought a computer from DELL (last weekend) through a really easy online system.

I received a phone call from DELL saying it would be deliver on Friday morning. Cool, my partner organised a morning off work and we could use the online tracking service to see where things were.

Well Friday came and they didn't deliver in the morning. I was on the phone to DELL (well their transport agency, but as far as I, the customer, am concerned this is part of the DELL experience) at 11.58 am.

They said they would deliver the next morning - by 10.30am. A nuisance but acceptable. So at around 12.10 pm my partner leaves for work.

We get home that evening and find a card from the delivery agent saying they tried to deliver but we were not at home - i.e. they tried to deliver late. We check online and they say they tried to deliver at 11:00 am - Lie. Damned Lie.

Now I'm annoyed, but not with the delivery company but with DELL - I bought this from them, they are responsible for everything down the line.

Next day - yep they don't deliver. Phone up DELL - no customer support on Saturday. Phone up transport agent - wait half an hour listening to elevator music - give up. Phone up local delivery agent - number is out of use.

Phone up DELL sales, someone answers within 15 seconds.

So my opinion? Well DELL is a company who cares about sales and not customers - which mean' s I've probably made a mistake buying DELL.

The machine hasn't even arrived yet!

Damn.

Tuesday, November 21, 2006

When no-one knows where things are heading ...

the best thing you can do is protect or create your freedoms.

Here is one petition which makes sense - private backups of copyrighted material

Politics? Hmmm, make mine a cup of coffee.

Today the UK government announced plans to hire "super nannies" (child psychologists) to help deal with the growing issues around troublesome youth by looking at providing parenting training in troubled areas.

The BBC stated that a Mori poll for the Home Office showed that 85% of respondents blamed poor parenting on problems with youths. It was presented to imply that both items were linked - I hope not.

Parenting may or may not be the cause of the problem, but is general opinion that relevant? I'd prefer drug trials over a Mori poll asking "Do you think this new drug is safe?"

In much the same way we should be first studying the cause - parenting, breakdown in community, rise of the illusion of individualism, advertising pressure, disengagement with society, exposure to violence or fear or no change at all just a greater awareness - rather than acting on popular opinion.

This work may have been done, but no mention is given - just merely lots of polls.

But then this leads onto another problem at the moment. The growing illusion of political activism. In the UK, for the last two decades political activism has been in severe decline - to the point that electoral turn-out makes record lows a norm.

There has been active disengagement of the population from politics, from the anti-politic trend being fashionable to the "one person can't make a difference" myths - which singlehandedly ignores most of our history.

In some circles it is argued that political activism has in fact grown but in other non-traditional forms i.e. involvement in environmental groups, local planning campaigns (NIMBYs), signing petitions, attending a march, not buying certain products etc.

Yes, you've guessed it - when I'm buying my fair-trade coffee I'm making a political statement!

The widening of what is political activism, combined with polls etc - creates an illusion of a politically active culture despite the fact that little political debate (as opposed to personality debate) exists within government, there is lack of any clear distinction between the parties and no big ideologies or visions of the future (the joke of course is the big idea behind labour's third way is not having a big idea).

In such an environment with a decline in voter turnout and party membership - you have political exhaustion not activism. With no vision of the future you have efficient tinkering rather than effective action.

But what can politics do today? Governments are subservient to the global economy and globalisation! Of course they are not in reality, they instead choose to be - we're a 60 million person country with its own legal and social structure - market economics is merely a tool not an overpowering force.

I am not advocating reckless change, but with a vision for the future of our society then we should not be fearful of necessary change or feel limited or controlled by that which society could change if it had the will to do so.

But that's the crux of the matter, the will doesn't exist and nor does the vision and so we seem to choose not to change but to instead run a steady ship with no idea of where we are going. We have surrended our grand social experiment called democracy and allowed our fear of change to paralyse us so that these days the great debates are whether detention should be 28 days or 90 days or whether we provide educational vouchers or not?

The time is right for a vision for the future, bold and brave politicians not afraid of change and a re-evaluation of our assumptions of the limits to our political and social systems.

In the meantime I'm going to buy some coffee.

Notch another one up for political activism.

Friday, November 17, 2006

Web 2.0

As with all O'Reilly conferences I was lucky to meet a wide variety of interesting people. The topics were good, ranging from new web 2.0 startups, how companies in this field were developing, new services, new models etc.

Of great interest to me was one strong theme which was repeated in six different sessions (it's rare that this occurs). That theme was the movement towards commoditisation of software and operating environments.

I call it theme, however a more apt description would be oncoming brick wall. Almost everyone recognised this as a the major future trend, there was little or no debate over whether it would happen just when and how.

This was a refreshing change. In the past when I've talked about such subjects, the response has been somewhat defensive but here it is was more fait accompli.

I'll make no bones about this, I'm a vested interest. Not only has this been a discussion point of mine for almost a decade but today I have my company has a product Zimki which is a commoditised web operating environment.

I was delighted by Jeff Bezos' talk which discussed all the "Muck" which gets in between the process of idea to development (thanks to Troy for the good summary). This "Muck" is what we call Yak-Shaving, it's all the things like setting up a server, configuring, backups, databases, hosting etc which you need to do before you can start developing.

That's why we built Zimki, to free developers from this and enable them to get on and develop.

We are going to put Zimki on Amazon's EC2, alongside our own hosted environment and then next year we will open source everything and help competitors get established. This is to enable people to easily port their data and systems from one environment to another, an essential part of creating a national grid.

The issue of portability is a growing question in the world commoditised operating environments. Amazon's EC2 service, though great, has a portability issue - there is no where else to port it to, you have to establish your own operating environment. As of today, I am not aware of a Google EC2 or a Microsoft EC2 etc.

That's why open sourcing Zimki is a key part of its future. The grid needs it.

Friday, November 10, 2006

California Dreaming ...

I met some wonderful friends in San Francisco, thoroughly enjoyed myself and spent eight hours walking through the city. Of course I saw the sea lions, Alcatraz and the Golden Gate Bridge - that was too be expected.

What I didn't expect to see was how San Francisco has taken the Golden Gate as a metaphor and created vast gated communities. The gates were not physical but invisible, almost built into the psyche of the place.

On one side of the road would be great wealth, designer everything and opulence whilst on the other would be poverty, homelessness and outcasts. Single roads would separate these "communities" and transit from one to another seemed rare for the occupants of each.

I was staggered by this, the divide was sharp and crystal clear. A 15 second crossing separated the "American dream" from the "American nightmare" - don't ask me which side was which.

I'd always had a belief that San Francisco was some form of hi-tech bazaar, a golden city with a vibrant community - a place of wonder.

Oh well.

It's nice though - both sides of the road have wonderful people. Not sure if they talk with each other much.

Still you can't learn a great deal about a city in an eight hour walk, so it's just my observations not a critique.

Sunday, November 05, 2006

Touchdown

Landed in San Francisco last night - preparing for a day of "where am I? what time is this? why has my brain shutdown?" and then it's web 2.0

On the flight over, I sat next to and got chatting with Jonny Geller who has written and published a book called Yes, but is it good for the Jews?. Very funny, and an interesting conversation on copyright to boot.

James Duncan took me out to a somewhat dodgy looking, but delightful BBQ called Minnie's. The food was excellent.

Over the next week, I've been asked to write up reports, presentations and questions on :-

  • Internet retail in the year 2015.
  • Future 3D printing industries.
  • Why carbon permits are not the solution.
  • Commoditied web operating environments.

and I've got some interviews on Zimki lined up.

I'll blog about these when I'm finished.