January 31, 2004

Educate, inform, entertain

It's the eve of SuperBowl Sunday -- a unifying collective experience of sorts -- and the going has gotten even weirder of late. What a week: Britain under a deluge of whitewash (although surely high-quality whitewash isn't meant to be so transparent?), and Blair can barely conceal his glee as Auntie gets caught in the mangle.

Anyone growing up in Britain will have been profoundly influenced by the BBC, in its many and varied dimensions. As a young teenager, I remember Sunday car trips to Hoddesdon listening to the Hitchiker's Guide to the Galaxy on Radio 4 (these were the days when transistor radios were neat). Radio Four was a fixture in my house; the soundtrack to breakfast, and The Archers at teatime. Television: Z Cars, The World About Us, Newsround, Blue Peter. Match of the Day. Radio One. John Peel! The World Service: "This is London" and the strains of the Lillibulero. Nowadays, http://news.bbc.co.uk/ is the homepage of my browser. I don't think Americans have anything remotely equivalent; it's probably hard to imagine growing up without ever seeing an advertisement on the box.

Some background, then. Wikipedia has a truly great article on the British Broadcasting Corporation: publicly funded, national broadcaster; radio, TV, and "new media"; important technical innovator and standard-bearer; cultural icon, with a deep legacy from Lord Reith: something of a patrician bent, and a mission to inform, educate and entertain.

The BBC is quite independent, and mostly funded by a very strange per-household tax on TV reception equipment. (Before TV, there was a purchase tax on radio receivers). There are plenty of good reasons to oppose the license fee, but I'd like to hope that public service broadcasting, with a reliable source of funding and editorial independence, will be part of the future as well as the past.

Reith wanted a national broadcaster to "make the nation as one man". To me, that's a statement of the central role of collective experience in "culture". It's a diverse world we inhabit, and experience is fragmented; yet everyone's outlook is influenced most powerfully by experiences in a social context. These collective experiences make "us" what "we" are.

What forms of collective experience can be created? What forms of mediated experience are "good"? These are the questions on which the BBC was founded. Some of my answers would mark me as an old hippy, and as a utopian groupware technologist. Some would surely make me seem a social conservative. There are central events which we experience together, and participate in together, in a range of environments from individual, to small group, to part of a "mass audience". Those events create a social context which is fundamentally important to the way we behave. Culture.

There's a long and interesting article -- 'The Tyranny of Copyright?' -- in last week's New Tork Times magazine. One piece points out that "media" is now clearly an interactive rather than purely broadcast function:

Benkler's belief in the importance of creating things in common rests on more than anecdotal evidence "Let's compare a few numbers," he said. "How much do people pay the recording industry to listen to music versus how much people pay the telephone industry to talk to their friends and family? The recording industry is a $12 billion a year business, compared with the telephone business, which is a more than $250 billion a year business. That is what economists call a 'revealed willingness to pay,' a clear preference for a technology that allows you to participate in work, socializing and interaction in general, over a technology that allows you to be a passive consumer of a packaged good."
Yet the only clear-cut dividing line between the participatory technologies and the broadcast technologies is when the number of participants exceeds two. Beyond groups of two people, interaction is social, and there's a spectrum of interaction modes (with "peer" and "couch potato" at the two ends) which is very analog, diverse, gradual. The whole spectrum of collective experience is up for grabs.

If those collective experiences are only mediated by commercial entities, or by agencies of government, then our broader "culture" will be fashioned according to what pays, or political interests. Look at Superbowl: it seems the adverts are at least as important as the game. Online, even the best advertising of the day is difficult: Tim Bray notes "Let's not sugar-coat this; running ads places my interests in direct conflict with my readers'".

So, I hope the Beeb comes out of this one alive and kicking.

While I'm watching the game (Patsies play the Panties, is it?), I'll join a part of this American culture - a strange land indeed. And at half-time I'll maybe read some more of Hunter Thompson on his arch-enemy's '72 election trail:

Nixon is a serious pro football freak. He and I are old buddies on this front: We once spent a long night together on the Thruway from Boston to Manchester, dissecting the pro & con strategy of the Oakland-Green Bay Super Bowl game. It was the only time I’ve ever seen the bugger relaxed—laughing, whacking me on the knee as he recalled Max McGee’s one-handed catch for the back-breaking touchdown...

January 27, 2004


The Siemens Medical Solutions logistics project ("eLVIS") now has a good case-study writeup on the Groove website:

Each logistics project team is unique, comprised of both Siemens Medical Solutions' employees and third parties including shippers, installers, electricians, carpenters, and more. Highly mobile and only occasionally connected, logistics team members must work closely with both Siemens Medical Solutions sales executives and hospital staff at the customer site to ensure each product is delivered and installed correctly. Because each step of the process cannot begin until the previous step is completed, any unforeseen delay, error, or disruption in the process can lead to cost overruns.

...ELVIS structures Siemens Medical Solutions' logistics process by providing each project team a virtual workspace for sharing information and coordinating all project activities. Groove mobile collaboration services automatically funnel to the workspace the relevant quote, order, and factory information for each order, encrypt and synchronize changes (made online or offline) among team members, and publish content to Siebel, SAP, OSIRIS, the Oracle and Microsoft SQL data warehouse, and Microsoft Project.

...Director of Logistics Integration Lloyd Merithew explains: "Previously, revenue forecasting was an incredible fire drill of people - VPs, project managers, field-level - all by phone. It took people out of their normal jobs. ELVIS has changed the whole process. Because everything is done in a workspace, synchronized with our data warehouse, we know exactly what's going to be built, delivered and installed this month. We can adjust the forecast on the fly, pull projects forward, and make up for any shortfall."

January 23, 2004


Powered single-wheeled vehicles. What a great concept! (via http://del.icio.us/bhyde)

I thought this was a super-high-tech thing (anywhere from Iain Banks to Bombardier Embrio) - with Segway-style stability controls, this sort of thing is obviously possible.

But it works in low-tech too. The RIOTwheel looks like a lot of fun. And, it's quick!

The current speed-record holder (Kerry McLean, video) builds slick and powerful machines. But isn't there a slight, erm, visibility problem?

More examples, going all the way back to 1869! The 1926 Gyrocycle is especially elegant.

January 17, 2004

System Requirements

As Tim points out, my "dohyki" needs Office 2003 - which I'd completely forgotten. Ahem. I'd better explain that (with as few gripes as possible about Microsoft's XML kit...)!

WSDL, SOAP, XML, HTTP and JavaScript

Writing a SOAP "client" is really quite straightforward, as long as you have an XML parser. You need to wrap an Envelope around the request data, possibly construct a Header, send it off, unpack the result (or an error) from whatever comes back.

If you're in .NET, and you have some WSDL which descibes the SOAP services, this is even easier (assuming that there aren't interop-gotchas lying in wait, which very occasionally happens). Simply wave vaguely in the direction of the WSDL, and you're magically given real, native-to-your-language interfaces which hide all the Web services. Something equivalent also applies for Java (with, say, Axis). Babelfish-for-systems. The stack could be mud, for all you know.

So, if you're writing an application which needs to talk to Groove Web Services, you'd usually start as high up the stack as possible. Otherwise, the lower you start, the more work to be done (and the more difficult decisions along the way).

Groove 2.5j

In the most recent maintenance edition of Groove, we introduced some support for InfoPath form libraries in SharePoint. One feature of this awesome toolkit is that some Groove facilities begin to appear inside InfoPath (ie. not inside the Groove transceiver): there's a task pane which shows online presence awareness of the people in the shared space which the InfoPath document lives in. Not only that, but you can send them instant messages and invite other users into the shared space - from the InfoPath UI. (Much more detail on the SharePoint integration here (pdf)).

And all that's done with some JavaScript and HTML. It's an example of starting "half way down the stack": not assuming .NET, but on the other hand having a regular webpage for user interface (the InfoPath task pane is HTML) rather than building an ActiveX control. I had a lot of fun building that taskpane, and I wanted to be able to leverage the code.


Besides being an interesting idea, the "hyki" is also a chance to leverage that InfoPath-oriented taskpane code. But it also inherits its system requirements. And that means: some of Office2003 needs to be there. Specifically, the SOAP/XML/HTTP stack which dohyki uses to do web services has been written for "MSXML 5.0", which only (currently) ships with Office 2003.


MSXML has a tortured history. Versions 2.x were (are) widely deployed, but buggy (and bad at namespaces). Version 3 is very common (I think it ships with IE5.5). I think Version 4 was supposed to be the once-for-all-do-it-right version; it's a stonking 5MB install, and I don't know many people who have it installed. But, if you're serious about XML, then version 4 should be waay better than 3.

So, I was as surprised as anyone to find that Office 2003 includes a "version 5" parser. Not only that, but it's still not redistributable: there's nary a mention of it on the whole of Microsoft's web site. (I think InfoPath's SDK has the full API reference, if you're interested).

Google seems curiously useless if you load up dohyki and see "Cannot initialize: Msxml2.XMLHTTP.5.0 is not available".

January 16, 2004


Some while ago Ray brought up the idea of a hyki, and I quickly hacked together an implementation, just to see what it felt like.

Yesterday it seemed somehow the right time to pick this up again, so after a few hours' cleanup, here it is. "dohyki". A simple (wiki-like) collaborative note-taking application for small groups, which uses Groove, and runs in a Web browser. This should be of interest as an example of what you can do with Groove Web Services (and developers will just love the crinkly code). You might even find it useful.

(update: thanks Tim, glad you're enjoying reading the code - and I added some system requirements. Now I'll have to explain them!)

Getting Started

The important disclaimer, first:

This is experimental sample code. It should never be used in a production environment (ie. where you have any Groove spaces which are important or sensitive). It may have adverse effects. There are no warranties of any kind, and there is no support. Use at your own risk.
Some notes about security:
This uses "non-safe" ActiveX controls to talk to Groove's web services, to read and write files on your local disk, and to read and write your Windows registry. To let those things happen, you need to answer "yes" when IE asks whether it can run the "unsafe" ActiveX code. You should NOT allow this unless you TRUST THE CODE YOURSELF, because once you've said "yes", this code has complete access to your system and could do some very dangerous things. So: understand this, and do read the code.
The user guide:
  • Read the disclaimer again. Read the security notes again.
  • You're running IE6, right? This isn't tested in anything else, and certainly won't work in non-IE browsers.
  • Right-click here and "save target as..." a file on your desktop. (It won't work from cabezal.com; the HTML file needs to be on your machine).
  • Launch the file from your desktop.

System requirements are fairly stringent, I'm afraid:

What is dohyki?

dohyki is a simple experimental collaborative note-taking application. It's kinda like a small private wiki, and shares some of wiki's free-form ethos. I think it's even simpler to use than a wiki, though: there's no "edit this page" link, you're always in edit mode.

Notes (pages) are stored in a Groove "files" tool which you choose. If there are other members of the Groove shared space, you can all work together at the same time. You can even edit pages nearly-at-the-same-time if you want (although you'll end up with conflicts: this doesn't really work real-time like SubEthaEdit or the Groove Text tool).

To write a note, you just type in the page. There's no "save" button: your changes are saved automatically, and anyone else looking at the same page will see your changes.

To make a new page, just type something in CamelCase: after a few seconds it'll display as a hyperlink. Click on the hyperlink, and you'll be taken into the new page with that name. (There's a "new page" button too, if that sounds too hard).

Here's screenshot.

How does it work?

dohyki is an HTML document with lots of JavaScript. The JavaScript code uses SOAP to talk to Groove Web Services (which are part of Groove Workspace, which you need to have running on your machine). All the storage, multi-user synchronization, and such is done by Groove.


(More -- screenshots, tech notes, etc -- to follow sometime soon)

January 09, 2004

Technology Of The Year

Groove gets a spot in InfoWorld's year's best products - "the most innovative and effective solutions in their category". Whoo!

January 08, 2004

Nonresident Alien

Dervala.net: "I Was A Nonresident Alien":

The United States and Canada differ greatly in their treatment of skilled workers. Philosphically, Canada decides that these are good people to have around. They are a terrific deal for the country, after all: already vaccinated and highly-educated by foreign taxpayers, and ready to fill jobs where local skills fall short. They bring immigrant energy, and may even create jobs. Once an applicant qualifies on the stringent entry requirements, therefore, Canada grants freedom of labor movement and, after three years or so, full citizenship rights.

The United States, on the other hand, treats skilled workers like high-class indentured servants...

January 07, 2004

Science? A New Kind?

More musings on Wolfram. Randomness, automatons, hubris (and Blake).

My earlier toy is one example of simple algorithms producing apparently-random patterns; there are plenty of commercial applications of this sort of thing. Wolfram's examples are striking in their simplicity, though.

Cellular Automata

The cellular automaton, even in its simplest form (one dimension, nearest-neighbour influences, binary state) is a fascinating thing. It's worth reading the book if only for the first few chapters, where he looks at the four basic classes of behaviour of these simple algorithms (roughly: degenerate; repeating; random; and complex), and thoroughly explores the way in which these same behaviours -- including surprisingly complex ones -- aren't necessarily restricted to one dimension, or fixed grids, or discrete states, and that "class 4" behaviour seen in rule 110 is about as complex things get. (On which point Kurzweil has something to say).

Computability and Scientific Mathematics

The rule-110 automaton rule is equivalent to a Turing machine. Before I get to that bit, though, there are some general comments on science, which I suppose are the intended justification for the "new kind of science" title.

Science works by suggesting possible explanations for the world, then producing testable scenarios which would confirm or refute the theory. Modern science is all about maths: the explanations are written down in algebra and calculus. Wolfram suggests that equations (and solving by constraints) are only the roughest of guides, and difficult too. Instead, a new calculus: computing.

This is dramatic, although not necessarily new: Church and Turing trod some of this ground a long while ago. Wolfram's case (simply put) is that simple rules can create complex behaviour, and that algorithmic, iterative, computable models are a better fit than traditional math in explaining that complexity. The downside of computability is that those models might be very hard to intuit or derive from everyday behaviour, and he likes a simple approach to finding appropriate models. With fast computers you can simply take a breadth-first sample search of possible algorithms, and look at the pretty pictures they produce. Some of the patterns have obvious real-world parallels.

There's some interesting stuff about biological evolution in here too, and I think it's probably quite close to the mark.

The universal explanation

A unified "theory of everything" has been an attractive goal since the beginning of science (and before, and since). This usually involves a set of descriptions -- mathematically, equations -- which can be said to govern all physical behaviour at a low enough level that even chemistry and biology are explained. Wolfram has an endearingly extreme version of this affliction: that there is a discoverable (and computable?) algorithm "that reproduces sufficiently many different features of the universe, then it becomes extremely likely that this rule is indeed the final and correct one for the whole universe". Furthermore, his suggested method for finding a rule appears to be: exhaustive (or sampled) search across the problem space.

In what furnace was thy brain? There's a name for this: hubris. Or: believe it if you want to; I don't, because the difficulty in computing the large-scale implications of such a rule would limit both its verification and its applicablity. Map, meet Territory.

But, I'm only on page 468; just over half way through the main text...

Update: I finished the book, but the second half was less than enlightening. Around page 516 there's a hint of something interesting in his causal networks model, but the endless verbiage just descends into vagueness. Later, the "principle of computational equivalence" surely doesn't take a whole chapter wherein I couldn't find a single concise definition; a couple of pages should have been more than enough.

One paragraph kept coming back, repeated in very similar forms again and again, like a roomful of class-2 cellular automata at typewriters:

Before the discoveries in this book, one might have thought that to create anything with a significant level of apparent complexity would necessarily require a procedure which itself had significant complexity. But what we have discovered in this book is that in fact there are remarkably simple programs that produce behaviour of great complexity. And what this means -- as the images in this book repeatedly demonstrate -- is that in the end it is rather easy to make pictures for which our visual system can find no simple overall explanation.
And there you have it.

Wolfram's Randomness

I've been reading Stephen Wolfram's A New Kind of Science, and plan to write a few comments about his theories later. First, though, one of the questions the book asks: what is the origin of randomness?

In a deterministic system, random events seem to come from "outside". But it's surprisingly easy to create very, very simple systems which appear to create highly random data. Here's an example.

I've only tested this in IE6, so your mileage may vary considerably (!).

base , multiplier coloursdigits

This graph is really really simple. Begin with the number One. For each iteration: Display the digits of the number. Then multiply the number by (say) three. Repeat.

Is the pattern random? It this real-randomness? Or pseudorandomness? Or are we simply looking at it through the wrong lens (for example, displaying log(n) would give a very different picture)? If pseudorandom, and if simple iterative processes in nature are as widespread as Wolfram asserts, then what is "true" randomness?

January 05, 2004



Siemens' new E-Logistics Virtual Information System, based on technology from Groove Networks, gives all parties involved in a sale online access to information. Siemens expects that the system, which cost less than $1 million, will pay for itself within six to nine months, says Doug LaVigne, VP of logistics.
Here's the Siemens application in a nutshell. Delivering large-scale medical systems is a process involving many people, all the way from sales and the factory through on-site construction, installation and training. The existing CRM and ERP systems track lots of detail about a project, but they don't actually help people get the work done: that requires collaboration; and collaboration requires not just "shared bounded goals" (as E E Kim put it recently) and "data", but also a framework for consistent, continuous, in-context communication between everyone involved.

And, tragically, most people working on large projects don't have the luxury of logging in to the ERP system to see what's going on. They're on the road, or off-network, or even third-parties with a contractual obligation on the project.

On the other hand, Groove can (very cost-effectively!) provide that shared workspace, and have the workspace delivered to the appropriate people when they need to be involved. More, the workspace can include real, structured data drawn from Siebel, ERP, and other "enterprise" systems, putting that information right into the workspace, where it can be updated in the field and automatically pushed back to the central tracking systems.

In the past, communication breakdowns often resulted in delays and extra costs for the company and its customers. For example, technicians attempting to deliver equipment sometimes found it too big to fit through a hospital room's doors. Now, when a salesperson submits a proposal into Siemens' Siebel CRM system, it triggers the creation of a job folder and alerts all involved parties. That folder collects and holds even the most basic information such as door measurements. "We have a total understanding of the project," LaVigne says.
More on the groove.net weblog.

Mike's new weblog

Michael Helfrich has a new weblog. Must-read.

January 01, 2004


Russell Beattie gives a rundown of what's on his Nokia 6600. It's quite a long list. Wot, no RSS-reader?