Signal and Noise

Sunday 9 May 2010

Be careful what you wish for (was "FPTP error 404: Government not found")

I was amused by this recent message on Twitter:
HouseofTwits RT @HevM FPTP error 404: Government not found. Please reset your voting system to proportional representation and try again. #dontdoitnick
The "FPTP error 404" line gave be a good chuckle (being a bit of a web geek), but underlying the chorus of calls for proportional representation I'm generally disappointed by the quality of post-election debate, and recall the old saying "be careful what you wish for".

I share the frustrations of many people that our UK voting system means that our government is effectively decided by a minority of voters who are lucky(?) enough to live in so-called marginal constituencies. (Was it really the voters turned away from the polls at 10:00PM in Manchester, Sheffield, etc., who were disenfranchised, or those of us who live in safe seats who are able to vote in the sure knowledge that it makes not a jot of difference?)  Further, I would like to see more consensual, responsive politics with less emphasis on passing laws and imposing dogma, and more on good administration to address problems. And most of all, I'd like to see a reverse in the trend to centralization of all meaningful decision making to an ivory-towered elite who cannot possibly predict or understand the Goodhart's Law effect and unintended consequences of the rules they hand down, and who take to themselves privileges that they deny the rest of us.

And this is where my problem comes with the understandable desire to replace our present electoral system with one of proportional representation (PR). Agreed, PR would mean that my individual vote would count for something, i.e. more than nothing, wherever I may live. But at what cost?

I quaintly cling to the notion that my MP is elected first and foremost to represent the people of my constituency, which includes me. That includes co-operating with other constituencies at a national level, and making some compromises of local interests to support a necessary national executive. When I feel strongly enough about an issue, I write to my MP and I expect a response (accepting that I don't always agree with it, and may change my vote accordingly, as I did over the recent Digital Economy Act). But the party system seems to turn this on its head: it's the national issues that are taken to be of prime importance, and constituency concerns secondary. My concern is that a system of Proportional Representation serves to make the party system yet more entrenched, and further weakens any possibility of direct contact with and influence over "my" representative.

So let's go back to first principles. First, I want my vote to count for something, even when I live in an geographical area that happens to be dominated by a particular share of politics. But I also want a clearly designated representative who I can feel will be motivated to give more weight to my view and less to the received wisdom from party HQ. There are systems of PR that claim to deliver this, but in my view any attempt to match overall party-level representation to votes cast must inevitably weaken the link between voter and individual representative. That statistics demand that it be so.

So are there any other ways? I'm no political theorist, so I'm sure my thoughts can be ridiculed by anyone who is, but I still feel it's worth exploring. Over the past couple a weeks, the following thoughts have occurred to me, all of which are predicted on retaining our first past the post (FPTP) mechanism for selecting a local representative:
  1. State party funding, where every vote cast results in political funding that can be disposed of by the candidate voted for. Thus, my vote for party A in a safe constituency for party B still results in some additional political clout for party A. Personally, I'm not sure that I approve of state funding of political groups - more snouts in the trough? - but maybe more importantly, this might make it harder for new entrants to gain a place in the system.
  2. Allocation of parliamentary time: similar to (1), but instead of doling out money based on votes, use the balance of votes to determine setting of the parliamentary agenda. Thus, if parties A and B both poll the same proportion of popular vote, but party B gets more seats, they still have roughly equal weight in setting the parliamentary agenda. On balance, I think this may not be such a good idea, as I could imagine it leading to underhand abuses of the parliamentary system.
  3. Weighting of parliamentary votes on legislative matters: a candidate who is elected with a massive majority has a parliamentary vote that counts for more than one who gets in on a slim majority when voting on legislation. Thus, if party A has more popular vote, but party B has more seats, then party B may form the executive but party A are still in a position to block any legislation with which they take issue. I personally like this idea. I can see it might be criticized for complicating parliamentary processes, but I don't see that's unmanageable (successive governments complicate the tax system with which we all have to deal without any such qualms).
  4. Fixed term parliaments - this has been widely suggested, and seems as if it could be a useful first step as it would tend to reduce the present bias of power in favour of the incumbent majority party. My one reservation would be: what happens if we get a genuinely "hung" parliament who cannot make any necessary decisions - must we be stuck with it for a full term? I think we could survive (or even benefit from) a stalled legislature, but a stalled executive might be problematic.
But all this is probably pissing in the wind. In part from my reading of work by Stuart Kaufmann (At Home in the Universe) on self-organizing complex systems, I come reluctantly to the conclusion that the system isn't going to change itself:  the only people with the power to meaningfully change it are precisely those who have succeeded under the present arrangements. So why would they? It's like asking the turkeys to vote for Christmas. What we get are a bunch of "leaders" whose primary skill is to play the present system, and for whom good administration and policy setting skills are at best secondary. What we need is a change in the "fitness landscape" for political survival, and that isn't going to come from the top. Maybe there is something the technical community can achieve here, building on initiatives like www.mysociety.org (www.theyworkforyou.com, etc.) and www.opendemocracy.net.

For now, new online tools make it easier to write to my representative on matters about which I feel sufficiently strongly and, having cast my ineffectual vote, I still feel entitled to a response.

Friday 30 April 2010

Oxford Model Flying Club: RepRap talk by Adrian Bowyer

Oxford Model Flying Club are pleased to announce that Adrian Bowyer from Bath University has agreed to give a talk about his RepRap project  on 19 May, to be held at Begbroke Village hall (http://bit.ly/9SX7Il), with doors opening at 7:30PM for the talk to start at 8:00PM.

The meeting is open to all, and if you'd like to attend please send an email to omfc-reprap-talk@lists.atuin.ninebynine.org so that we can have some advance idea of numbers attending.


I'll use this web page to post any new information about this talk.


What is RepRap?

The RepRap project aims to create a low-cost manufacturing system that is capable of making its own components from commonly available supplies.
  • RepRap is a desktop 3D printer, or rapid prototyper, capable of printing plastic objects.
  • The RepRap designs are freely available, and one can be constructed currently for a materials cost of about £350.
  • RepRap can make about half of its own parts (not counting nuts-and-bolts), and the remaining materials are stock items available from a number of sources.

More information about the RepRap project can be found at http://reprap.org/, or http://staff.bath.ac.uk/ensab/replicator/Downloads/one-page.pdf.

There's also an interesting commentary at: http://news.bbc.co.uk/1/hi/technology/10089419.stm.

Picture of RepRap "Mendel"
(image from RepRap web site: http://reprap.org/mediawiki/images/thumb/1/1f/Mendel.jpg/520px-Mendel.jpg)


Why RepRap for aeromodellers?

Traditional home-build aeromodelling has been displaced in recent years by hi-tech mass manufacturing of ARTF kits, with a corresponding reduction of diversity and innovation in models seen on the flying field. The RepRap project puts hi-tech manufacturing capabilities back into the hands of club modellers, and could help to spur and sustain a new grass-roots innovation in model design and construction.

Why aeromodellers for RepRap?

Aeromodellers (and other hobby modellers) are a long-standing community of "makers", who are used to building complex artifacts using a variety of technologies.  As well as making good use of RepRap's capabilities, this is a community who may be motivated to create more RepRap's (in the spirit of http://reprap.org/wiki/PhilosophyPage). Further, aeromodellers are used to analyzing and adapting designs to make them better for their original purpose, or to apply them to different goals. It would be surprising if the creativity of modellers could not find many ways to improve or extend the RepRap designs.

Saturday 17 April 2010

An open letter to Nationwide Building Society

Dear Nationwide Building Society,

Some time ago, I started using your society's online banking service because, in clear distinction from all the non-mutual banks, you offered a clear and unequivocal promise that I would not be liable for any fraudulent online transactions that might be perpetrated through my account.  No ifs, no buts, no burden of proof, just a simple promise. This seems to me to be admirably in keeping with the philosophy of being a mutual organization.

Recently, I was disappointed to read that your promise has changed.  Specifically, that it does not apply if online banking is performed using a Linux system - only Windows and MacOS are allowed, you say (http://bit.ly/cHFyoz).

This seems an odd choice for a mutual society.  Linux is open source software, which is the technology community's equivalent of a mutual organization: members supporting members.  Nationwide makes much of its status as a mutual money services organization, so it seems strange that you insist we must use proprietary, profit-driven software if we are to benefit from the mutual support of your promise.  Linux is free to use, and runs well on less powerful hardware, so should be a logical choice for many people who can't necessarily afford the latest and most powerful computers.  As access to Internet services becomes a necessity rather than a convenience for accessing a range of services, your policy becomes a form of discrimination against those who are less able to afford the more powerful computers, which seems to me to be antithetical to the mutual philosophy.

You will no doubt argue that Linux users are in a minority.  But why is this?  I would say that it is for pretty much the same reasons that mutual organizations are in a minority when it comes to banking services.  The proprietary, for-profit suppliers expend vast marketing budgets to capture as many customers as possible, luring them with vacuous and mostly short-lived promises.  And policies like yours which, repeated across countless organizations, reinforce the false notion that a non-commercial system such as Linux is somehow a second class, less capable alternative.  That Linux is somehow less capable or less secure than the commercial alternatives could not be further from the truth.  In the best traditions of mutuality, it benefits from contributions and review from a vast community, far more than any single commercial organization can muster.

I may be disappointed, but I am not surprised when I see large commercial organizations supporting only proprietary systems. I have seen the marketing machines of large software companies at work, offering all benefits to the direct customer organization, for which the price paid by its customers is that those who choose to use systems from other suppliers are offered a second-class service.  But for a mutual organization to make such a choice suggests to me that the very values that underpin mutualization are being corrupted by commercial interests in the supply chain.

We have seen recently the damage caused by narrow commercial interests in the banking system.  Mutual societies remind us that there are other ways, which are often better and more secure.  I use building society money services for just this reason.  The same is true for computer software: a monoculture is potentially dangerous and unstable.  We have recently heard of cases where a computer virus infecting a corporate network has crippled an organization because it standardizes on a single platform.  If you only support one or two proprietary systems, the damaged caused when one of those systems is compromised is magnified.  What we require is diverse implementation of and support for open Internet and Web standards.

To conclude, I believe that Nationwide, as a mutual organization, should be supporting diversity and mutuality in information systems, and I strongly urge that your customers should be supported, not discouraged, in using open source software systems such a Linux.

Graham Klyne

Sunday 21 March 2010

Dev8D reflections and the real world: bits, atoms and collaboration

It's one month on from the Dev8D [10] February 2010 meeting, and now the immediate buzz has faded a little, I'm looking back with a little more perspective on the impact that meeting has had on me.

My plans for using Drupal have been sidelined somewhat by the pressure of day-to-day work, but I did manage to join in an Oxford Drupal Meetup and learned some more about using this platform.  I think I'm getting a better idea of its strengths.

The other topic that has really impacted my subsequent thinking is the RepRap demonstration and talk by Adrian Bowyer.  Prima facie, it's a low-cost 3-D printer.  But it's also far more than that, and the implications of the interplay between open source software, open data and personal manufacturing have been food for thought over the past few weeks.  These thoughts have been complemented by discussions of open data noted on O'Reilly Radar [1], and the extent to which the open data movement might learn from open source software, and recent comments by Eben Moglen [2] about software freedom and cloud computing, which in part explores the relationship between client/server, or broadcast/consumer in contrast to peer-to-peer architecture: are we surrendering power to dictate what we do or see to a few large corporations.  (There's a kind of counterpoint here to Jonathan Zittrain's thoughts about generative vs sterile computing platforms, and the extent to which an open, generative platform is precisely what allows malware and other bad things to happen to our information handling systems.)

It seems that affairs are coming full circle: agricultural societies were transformed by the industrial revolution, which institutionalized manufacturing in factories, and gave us mass produced products, which in turn gave us integrated electronics, computers, and personal computers. Personal computers have underpinned a whole new industry of software production, where the low cost of hardware required, putting the means of software production in the hands of individuals.  Meanwhile, the same trends in electronic devices have also given rise to computer networking, the Internet and the World Wide Web.  These trends in computing hardware and networking prepared the ground for open source software, and a whole new parallel economy of software production that is not dominated by institutions. (The Drupal system and its associated community is a good example of this parallel economy: individual traders and small business providing high quality online presence to small businesses and "third sector" organizations).

At Dev8D we saw several examples of how the open software model is starting to impact other areas of economic activity.  Following on from the linked data meetup on the first day (which is where I learned about RDF support in Drupal 7 [11]), there was much talk of doing interesting and useful things with open data, and especially open government and museum data.  But, to my mind even more significantly, we learned about grassroots open source/open data activities that are reaching back into the physical world - the world of atoms, not just bits. Throughout the meeting, workshops taught interfacing and programming Arduino devices [3] to observe and control events in the real world.  Arduino is a low-cost, open source electronic design that interfaces to a computer via USB (or network interfaces), and also connects to various kind of sensor and control interfaces.  The kinds of capabilities previously available for industrial process control are being made accessible to individuals.  And to top it all, there was RepRap: the replicating rapid prototyper [4].

As already noted, RepRap is at first view a low-cost 3-D printer.  But it is also a 3-D printer that can make about half of its own parts, and the remaining parts are standard commodity hardware and electronic devices.  Furthermore, the RepRap design is completely free and open. Thus, not only does RepRap put a basic manufacturing capability into individual hands, it also democratizes the capability to create more RepRap machines.  The possible economic, social and ecological consequences are quite heady stuff.  It doesn't stop there:  Adrian Bowyer is also looking to develop RepRap to the point that it can manufacture objects from Polylactic acid, which can be produced by fermentation from appropriate vegetable crops, and even to use RepRap to manufacture the fermentation hardware required.

So maybe we are seeing the capability for high-tech manufacturing becoming an integral part of a new kind of agricultural society?

I think we may be moving towards a world in which software and data and hardware don't have to live in separate compartments, each controlled by their own high priesthood of industrial powerhouses, but where the potential to provide a wide range of needs can be met within smaller communities.  The Dev8D meeting showed a glimpse of these possibilities, and some further investigations over the weeks since have shown some areas where these possibilities are edging towards reality [6] [7] [8].

During the course of these investigations, I came across a striking phrase in a context whose source I have unfortunately lost.  From a premise that a key reason for concentrating manpower in factories and offices was so that expertise could be brought together to achieve some greater goal, and noting Bill Joy's phrase "wherever you work, most of the smart people are somewhere else", it seems that given open communications and open data, we don't have to all come to the same factory, as the really smart person who can solve our problem can be accessible anywhere in the world.  And to engage all this talent?  I think some pointers are in Tim Bray's "Message from the Web" [9].

All this may seem to be a long way from JISC and Dev8D.  But I think that having the opportunity to meet with and learn from a wide range of other developers, we can become aware of and respond to new ideas that are popping up all around us.  And seeing working demonstrations of real-world interfaces created within the short time available brings home the real possibilities in ways that no mere slideware ever can do.

#g.

[1] http://radar.oreilly.com/2010/03/truly-open-data.html
[2] http://www.softwarefreedom.org/news/2010/feb/08/audio-and-video-eben-moglens-talk-freedom-cloud-no/
[3] http://www.arduino.cc/
[4] http://reprap.org/
[5] http://en.wikipedia.org/wiki/Polylactic_acid
[6] http://www.wired.com/magazine/2010/01/ff_newrevolution/all/1
[7] http://webworkerdaily.com/2010/02/10/the-future-of-work-from-bits-to-atoms/
[8] http://www.blueprintmagazine.co.uk/index.php/architecture/the-worlds-first-printed-building/
[9] http://www.tbray.org/ongoing/When/200x/2007/12/12/XBRL-Web
[10] http://dev8d.org/
[11] http://buytaert.net/rdfa-and-drupal

Monday 8 March 2010

Semantic wikis, content management systems and linked data

For some time I've been interested in connections between human readable web pages and machine-processable data on the web, specifically data that can be presented as RDF. Initiatives like RDFa, GRDDL and Microformats offer ways to include both in the same web resource, but don't entirely address the problem of authoring both through a common system or interface.

An early promising approach for addressing this problem was semantic wikis, exemplified by Semantic Media Wiki. For limited purposes, these work really nicely, but marking up data for machine processing often doesn't appear to yield sufficient benefit to justify the additional effort.

I recently attended the 2010 JISC developer meeting, Dev8D (http://dev8d.org/, http://wiki.2010.dev8d.org/w/Main_Page), and one of the topics that lit my fire was Drupal 7. This new release of Drupal (in alpha at the time of writing) brings RDF data into the system's core. I heard that the structure of any content delivered by Drupal can also be exposed as RDF, either as RDFa though the normal web interface, or via a queryable SPARQL endpoint. Wow! All that data accessible as linked data!

So I immediately set about redirecting a nascent project idea, which I'd originally conceived to be based on Semantic MediaWiki, to use Drupal 7 instead. I haven't made a lot of progress, but thinking about the new approach caused me to think about the relative strengths of semantic wikis and "semantic content management systems", which is a description I've just minted to describe systems like Drupal 7.

My original mini-project idea was to collect prose descriptions of technical topics and experts, and use typed links to capture relationships between them, in a way that might conceivably be useful for finding someone of whom to ask a focused technical question. The notion of starting with unconstrained free text was appealing, as relevant structure is not always evident when information is first assembled or recorded. On hearing about RDF support in Drupal 7, I contemplated using it as an alternative way to capture this loosely structured information, anticipating that Drupal's support for linking between nodes would allow the structure to emerge from free-form textual descriptions in much the same way as a semantic wiki.

Since then, I have noticed that a content management system (CMS) imposes a greater degree of uniformity between all object descriptions than a semantic wiki. At heart, the CMS stores information in relational database tables, where each record (row) of a given table follows broadly the same pattern. Of course, different types of record can have very different structures. But, to enter information into such a system, one must first decide what type of object is being described, and this in turn circumscribes the structure of information that can be entered.

In contrast, a semantic wiki element is first and foremost a free text description, within which elements of structure may occasionally be discerned, identified and marked up for semantic analysis. But where there is no such structure, the text may still stand alone, as an unconstrained description free of predetermined structure.

So it seems that semantic wikis and content management systems approach the same goal of combined machine-processable and human-readable information from entirely different directions. The semantic wiki from the origin of unstructured free-format text, within which structure can be discerned and encoded with suitable ad-hoc effort. The CMS from structured data whose individual elements may be unstructured free-form text. The inherently-structured CMS approach makes it easier to capture predetermined structure, while the unstructured wiki approach makes it easier to enter information absent of structure, or whose structure is yet to be determined.

Is there a point where these two approaches meet, combining the advantages of both? I.e., easy entry of unstructured information combined with easy capture or extraction of structure. I don't know, but I have some ideas that might make this possible. Without previously realizing it, I think this is one factor behind my work on Shuffl (http://code.google.com/p/shuffl/), but that project is sill a way from realizing this in a usable fashion.

This is a topic that I shall continue to think about.

Hello world

With a first-post title like this, I have to be a software person, right?

This is a place for me to make some noise; along the way, maybe I'll also manage to leave a trace of signal.