2011/11/06

A good series of posts on bipartisanship, and whether or not it can work:

Lawrence Lessig: One More Try: The Rules Versus the Game:

This is the final (as far as I'm aware) installment in a series of articles debating about whether or not the OWS people should be forming common cause with the Tea Party with the shared goal of changing how Washington works. Follow the links at the top to read in chronological order...
Imagine you're a player with the Chicago Bears. You're on the field, about to begin a game with the Green Bay Packers. Just before kick-off, someone races onto the field screaming: "Guys, please, can't we all just get along? Enough of this fighting. Let's just shake hands and go get a beer."

A good speech on new ideas and leadership

The American Scholar: Solitude and Leadership - William Deresiewicz

"I find for myself that my first thought is never my best thought. My first thought is always someone else's; it's always what I've already heard about the subject, always the conventional wisdom. It's only by concentrating, sticking to the question, being patient, letting all the parts of my mind come into play, that I arrive at an original idea. By giving my brain a chance to make associations, draw connections, take me by surprise. And often even that idea doesn't turn out to be very good. I need time to think about it, too, to make mistakes and recognize them, to make false starts and correct them, to outlast my impulses, to defeat my desire to declare the job done and move on to the next thing."

2011/11/02

Revolutions on the Internet (Aaron Swartz's Raw Thought)

Revolutions on the Internet (Aaron Swartz's Raw Thought)

Aaron Swartz makes a good point about approaching the "does the Internet help?" debate from a social science perspective.
"Jon Elster has a four-phase theory of revolutions:
  1. A hard-core of committed activists get together to do something completely crazy.

  2. The regime cracks down, attracting people who are sympathetic to the cause to rally to the support of the crazy ones...."

Evercube: DIY NAS, looks better than one you can buy in a shop...

Evercube:
"When I came across the Backblaze storage pod, I was immediately intrigued by its clever, no-frills design. But who really needs 67 terabytes (or even 135) at home?

I decided to scale their excellent design down for home use, and after a long period of experimentation, the Evercube was born.

The design is open hardware, available under a Creative Commons Attribution license. But for your convenience, I am also offering all components needed to build the Evercube as an easy to assemble Do-It-Yourself kit."

NewsBlur: A Social Feed Reader

The NewsBlur Blog / A Social Feed Reader: A little guy (who's been coding this up in his spare time on the train every day) gets a boost from Google Readers mistakes:
"Recently, my main competitor, Google Reader, announced plans to decommission the social features of the site and integrate them into Google+. While Google is busy refocusing on what’s important to them, many users feel left behind. My goal with NewsBlur is to make a better, complete experience for reading sites. This includes social features that make reading a social experience.
Social is a major planned feature. It’s highly prioritized right after I build two other big ticket items: mobile and search. The mobile iPhone app is wrapping up and is already at version 1.1 on the App Store, although I have not publicly launched it because it still needs a few more features (specifically, training and the river of news) to be considered feature-complete.
Once that’s out the door, I have to build search to be able to support social. Search won’t be impossible, since the UI design decisions are fairly straight-foward, and the backend is a no-brainer in terms of design. But it’ll take some time to get right, make fast, and get integrated into the massive database that is quickly accumulating."

2011/11/01

St Paul's Cathedral dean resigns over Occupy London protest row - The Guardian

St Paul's Cathedral dean resigns over Occupy London protest row | UK news | The Guardian

"While Fraser stepped down over a specific objection to force being used to evict protesters from the 200 or so tents that have been set up close to the cathedral, Knowles resigned amid a general sense that the St Paul's hierarchy had dithered. This was particularly the case over the week-long closure of the cathedral, the first since the second world war, because of apparent health and safety issues which were never fully explained.

"The past fortnight has been a testing time for the chapter and for me personally," Knowles said in a statement.

"It has become increasingly clear to me that, as criticism of the cathedral has mounted in the press, media and in public opinion, my position as dean of St Paul's was becoming untenable. In order to give the opportunity for a fresh approach to the complex and vital questions facing St Paul's, I have thought it best to stand down as dean, to allow new leadership to be exercised."

Knowles's decision prompted a first intervention in the crisis by the archbishop of Canterbury, Rowan Williams, who appeared to tacitly acknowledge that closing the cathedral was a mistake. He said: "The events of the last couple of weeks have shown very clearly how decisions made in good faith by good people under unusual pressure can have utterly unforeseen and unwelcome consequences."


2011/10/07

Announcing Scriptus, my latest side-project!

I've been working on this small project in my very limited* spare time since Christmas 2010. I published as open source it a couple of weeks ago, and I've been quietly gathering feedback since then.

Scriptus is a way of programming interactions between people. What's new is that these interactions can be complex and span days, weeks, months or years: elections, chess tournaments and games are all easy to create. The project web-page is here and the blog is here.

Scriptus programs are written in JavaScript, the world's most easily accessible and widely available programming language. Programs communicate via Twitter, since Twitter and their API is open to all and easy to use. Programs can run for months, years or longer, due to the magic of Rhino's serialisable continuations. In addition to that there is a simple UNIX-like process model.

For more information, check out the user guide, API documentation, or the Scriptus project home page.

My motivation is that I am simply driven to create and write programs. It's part of who I am. Fred Brooks said it better than I ever could and I encourage you to read the whole of this, but in short, "Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all..."

Scriptus is meant to let you create programs that interact directly with people without bothering with much of the folderol and yak-shaving that you normally have to do when programming. It's designed to give a new approach to the idea of programming; one that thinks long-term and is focused on people.

I'm interested in your comments and feedback on the project. Many thanks so far to Torrey, Sander, Jean-Michel, Jenya and Nathanael for feedback and advice, and of course to Bethan for her loving support and encouragement :-) Onwards and upwards!

(Footnote *: To illustrate just how limited my time is: I have a full-time job and a baby daughter, and since January, I've spent my 20 minute commutes on the tram programming, when I find a seat. Also, when baby is asleep in my lap, I can balance a netbook on my knees. The rocking motion of my arms when I'm typing seems to to be soothing to her :-)

2011/09/20

Primitive automated spell-checking of markdown using sed and ispell

(Why yes, this is a niche post!) Right now this is just a shell script, but it could easily be added to the build process so that a typo (or a new word missing from the project words list) would break the build - no more bad documentation!

#the below regexps remove
# - basic HTML tabs
# - heading hashes
# - code samples
# - inline code
# - URLs
#from markdown-formatted code, as a prelude to spellchecking
cat docs/*.md |
sed -e 's/<[/]*[a-z]*>/ /g' \
-e 's/^[#]*//' \
-e '/```/,/```/ s/.*//' \
-e 's/`.*`//' \
-e 's/\[\([^]]*\)\]([^)]*)/\1/g' \
| ispell -p misc/words.list -l | less

2011/02/06

Eben Moglen's talk at FOSDEM '11

Eben Moglen of the Software Freedom Law Center and at the Free Software Foundation gave the first keynote of Fosdem 2011

The talk centered around freedom in the literal sense, as opposed to the 'freedom 0' sense of the GPL. To paraphrase, what coal & steel was to 20th century politics, electricity and software is to the 21st century.

Using WikiLeaks, Tunisia & Egypt as examples, he made the point that centralisation of social utilities such as Facebook & Twitter are not a good thing for civic society, firstly because they introduce a single point of failure, and secondly because the interest of those companies - profit - is not aligned with the interests of the protesters, i.e. the promotion of liberty and disruption of the (often profitable) status quo. Eben made the point that 'we' as the free software community are behind the curve in meeting the need of citizens engaged in this kind of activism.

He then made a short diversion into Eisenhower's warning against the U.S. military industrial complex, which he said had evolved into a 'surveillance military industrial complex'. He referenced the contempt shown to the rule of law during the Bush years, and the expansion of Bush policies on rendition etc. under Obama.

At roughly this point he announced what he called the "Freedom box" initiative (/foundation) whose goal was to produce a 'plug' form-factor PC that could act as a node in a wireless mesh network and provide routing / connectivity, maybe function as a base station and potentially offer other services too. Enough of these, made cheaply and distributed relatively densely in modern cities, could act as a relatively robust WAN in times of peace, and as an information back-bone free from kill switches when such a thing becomes necessary.

During the talk I had the good luck to be sat next to Juliusz Chroboczek, an adjunct professor working at a Paris university on, among other things, mesh networking, as you can see from his research page. Eben's promotion of meshes also reminded me very strongly of the now-vanished WikiWikWAN project, the sole trace of which seems to be it's CodeCon 2002 listing. The lightning talk on open source telecoms by Donatus Onwunumah seems to be highly relevant too.

I had to leave right after the talk, so I didn't get to engage in the many follow-up conversations that no doubt ensued, but I'm interested to see him throwing his weight in a new direction - and I look forward to seeing how this develops.

The market can eat itself, and us.

"Security can be viewed as a tax on the honest, and [the theft of iron manhole covers, lead roofing and aluminium guard rails] demonstrate that our taxes are going up. And unlike many taxes, we don't benefit from their collection. The cost to society of retrofitting manhole covers with locks, or replacing them with less re­salable alternatives, is high; but there is no benefit other than reducing theft.

"These crimes are a harbinger of the future: evolutionary pressure on our society, if you will. Criminals are often referred to as social parasites, but they are an early warning system of societal changes. Unfettered by laws or moral restrictions, they can be the first to respond to changes that the rest of society will be slower to pick up on."

The financial crisis of 2008 should have illustrated, to all but the most die-hard, ignorant or Sinclairized, that 'the market' is by no means a panacea for our ills. It is not some modernist god worth worshiping for its wealth creation abilities. Nor should the forces it creates in society be exempt from judgment by virtue of their origin.

The above quote illustrates this neatly: Schneier discusses a situation where market forces incentivise the cannibalising of the very infrastructure on which society and functioning markets depend.

Cross-reference this with 'The collapse of complex societies', by Joseph Tainter, which investigates why societies fail. To illustrate what is meant by 'collapse', here he quotes an eyewitness account of the collapse of the Turkish government:
"...the Allied troops... found a city that was dead. The Turkish government had just ceased to function. The electrical supply had failed and was intermittent. Tramways did not work and abandoned trams littered the roads. There was no railway service, no street cleaning and a police force which had largely become bandit, living on blackmail from citizens in lieu of pay. Corpses lay at street corners and in side lanes, dead horses lay everywhere, with no organization to remove them. Drains did not work and water was unsafe. All this was the result of only about three weeks' abandonment by the civil authorities of their duties."
And from his summary, a succinct explanation of the core thrust of the book:
"Four concepts lead to understanding collapse, the first three of which are the underpinnings of the fourth. These are:
  1. human societies are problem-solving organizations;
  2. sociopolitical systems require energy for their maintenance;
  3. increased complexity carries with it increased costs per capita; and
  4. investment in sociopolitical complexity as a problem-solving response often reaches a point of declining marginal returns.
"This process has been illustrated [in previous chapters of the book] for recent history in such areas as agriculture and resource production; information processing, sociopolitical control and specialization, and overall economic productivity."
We started with an example of an expensive investment to guard against a generally improbable crime, itself only occasionally worth committing during commodity shocks, and costing far more to society than it makes in profit to the criminal.

In the reference frame of point 4 of the above quote, this kind of investment is very far past the point of declining marginal returns, almost absurdly so - the marginal return is most definitely negative.

If society collapses around us, the market will make things worse, not better. 'Market forces' will strip buildings of pipes and copper wires, homes of their roofing and the vast majority of citizens, defenseless, of their possessions and dignity. This too is the market - Moloch as Ginsberg imagined it. Nothing worth venerating there, nothing at all.

2011/01/30

Bleary-eyed first impressions off the Android development kit (ADK)

  • I wouldn't even be doing this if the iPhone SDK wasn't Mac-only.
  • Installing the ADK necessitated a good deal of yak shaving to get the latest version of Linux, due to library conflicts.
  • All those people complaining about the slow emulator - they're right. But try launching it on an eeePC 901 and weep... it is glacial :-)
  • The Eclipse tools were really nice and easy to set up.
  • Once everything is up and running, it looks real easy to develop with.
  • My next step is to try testing C2DM.
  • Every question I've had so far has been answered by Googling and finding a Stack Overflow page.

2010/12/13

Idea: scripting for the rest of us.

Rhino has had continuations for a long time now. JavaScript is the language of the web. However, long-running executions are generally only discussed in the context of business processes, whereas in fact anything can be a long-running process.

For example, against an API for a hypothetical group todo list/document review tool (getActions, followupActions, review, distribute), a regular committee or meeting can be run like this:
var minutes;
while( ! disbanded) {
var oldActions = followupActions(minutes == null ? null : minutes.actions);
var newActions = getActions(participants);
minutes = {actions: newActions.join(oldActions)};
var accepted = false;
do {

accepted = review(minutes);
} while( ! accepted);
distribute(minutes);
sleep(1*month);
}

This could be for a school board, church council, or whatever. Also, you can use this format to (e.g.) organise rotas, timetables, casual chess tournaments, games of hide-and-seek or anything else.

In practise the API would be far more general than the one posited above, and the four methods above would themselves be functions.

I think that you could use this mechanism to do games, interesting projects or social activities with the Facebook API, for example. You could publish scripts, and scripts of scripts or libraries of functions, oh my! All kinds of interesting things. Anyway, I made some mockups of a potential iPhone application using this tool since it's probably the closest I'll ever get to actually building something like this. This is what would happen when you load a script (the user is responding to an invitation and has just clicked on "view source" to see what s/he is being invited to participate in):

And this is what happens when running a script (likewise the user has clicked/expanded "you are here"):

Would be interesting, no?

2010/12/11

Idea: decentralised P2P website mirroring

The recent case of Wikileaks being booted off AWS provoked the following thought: if lots of people started mirroring wikileaks on EC2, Amazon would be forced into playing whack-a-mole to stop it. Game over: the revolt of a user-base, the inevitable collateral damage, etc. leads to bad PR and (hopefully) reform and vertebrates. Amazon's nice GUI combined with their introductory offer making a micro instance basically free for a year, means that putting up a how-to page/YouTube video showing every college kid with a credit card how to do it can't be too difficult.

My question is, what next? How to you turn a swarm of small, transient mirrors into something findable and load-balanced to deal with the (potentially) huge demand of serving Wikileaks traffic?

Therein lies an interesting problem. First and foremost the question of how you resolve a stable domain to one of a set of highly dynamic addresses is a difficult one. Round-robin DNS load-balancing with a very short TTL is one obvious approach, but this begs the question of how one boot-straps and then maintains the CNAME record containing the list of mirrors. The stable domain could be a CNAME to DNS servers that are themselves part of the mirroring swarm, if each node acted as both a DNS and an HTTP server. Each node would return a randomised list of the nodes in it's topological neighborhood.

Apart from that, I'm not much further along in my thinking. Posadis could be used to implement a simple DNS server - the sample code can practically be copy-pasted by anyone who knows a bit of C++. The P2P network should be easy to do - any DHT should be usable, provided it has an API call to get the list of nodes, since the goal is not really to store information but just to maintain a single cluster of machines that know about each other. But the boot-strapping problem remains.

2010/12/08

Thoughts on WikiLeaks

  1. We should be more outraged at the malfeasance revealed than at the manner in which we learnt of it. That we aren't, speaks to our cynicism and the low-to-nonexistent standards to which we hold government.

  2. It was EveryDNS, not EasyDNS.

  3. Much as I love Amazon AWS (see many, many previous posts), their justification for booting out WL is disappointing, because (a) the cause (Lieberman's call) and effect is there for all to see, and (b) they didn't boot WL off because of the Iraq or Afghanistan war logs, which were also violations of the TOS, six months ago. Besides which, they have a business interest in a robust first amendment - they sell books, including dangerous and subversive ones containing state secrets! This isn't hard people!

  4. As Tim Bray said, the spinelessness of the IT industry in general is depressing when one considers that we should have "freedom of speech" in our DNA.

  5. The following ideas are not contradictory:
  • Cablegate is not necessarily a good thing
  • The way in which various governments and their officials have responded to it is an attack on the freedom of information and on the free press.
  • Julian Assange can be (a) a scumbag rapist, (b) justifiably paranoid, (c) a raging egotist and (d) doing really important work, all at the same time.
Good thinkers on the subject include Clay Shirky and Glenn Greenwald.

2010/11/25

'War Is a Force That Gives Us Meaning' by Chris Hedges

This book is about war, but not about guns or tanks or tactics or strategy. It laments the nature of war, which is murder. It describes the effect of war, the moral and physical destruction and degradation of the victims caught up in it - the soldiers, civilians, and witnesses such as the author. It is an eloquent, upsetting and disturbing book. Although it seems to have been written out of a deep sense of despair with humanity, it does in the final chapter sound a solitary note of hope - in our capacity for love, and for love to triumph over hate.