11 Fictions Are, new graphical works based on digital renders of contemporary architectural projects.
11 Fictions Are, new graphical works based on digital renders of contemporary architectural projects.

Marius Watz's arc drawings, printed by Studio Mode using a CNC plotter.
More from Marius over at Code & Form.
stro' phe' nome is a series of graphics produced using a gestural interface. A study of unseen architecture. The work is published as stdio.006.
The full transcript of my first academic seminar is now online: Microplexes. It's housed at urbagram.net, which will be the home of my research into urban systems.
Papilio Dardanus exhibit phenotypic polymorphism in their variation of wing pattern. The forms can be reproduced mathematically using a variation of Turing's reaction-diffusion model with a particular reaction kinetics (Sekimura et al).
Supersurface A1-A21 is a series of abstract graphical works produced as a study into volume, rhythm and surface; a kind of visual thinking. The generative graphics are composed of a field of lines subject to deformations through the placement of attractors at different points in space. They're partly based on the reaction-diffusion dynamics evident in morphogenesis.
More info and the complete web gallery available via stdio.
I've posted some background on the research I'm just embarking on, to provide a little more detail for all those of you who have been asking and as an embellishment to the many conversations I've had with friends on the subject. You can read it here.
In short the research involves using computational methods to help increase the energy efficiency of transport networks in cities. The research draws on complexity science and network theory, and the output is a set of tools & techniques that allow policy makers to design more efficient transport systems.
Last month I left Last.fm after a little over three unforgettable years. We did some good work. I got to hang out with a group of people with immense talent and grew in all kind of ways that can't be quantified, charted or spreadshot. So much remarkable stuff took place in such little time I wouldn't even know where to begin telling. So I'll spare you.
A week after my voluntary unemployment kicked in I walked into an interview at the multi-disciplinary research unit, CASA, for a funded PhD in the application of complex systems & network theory to matters of urbanism. These matters interest me.
My presentation contained three quotations that served to illustrate why I was sitting in front of the project leads. They clinched me the PhD,
I have confirmed Pascal’s observation that imagination tires before Nature.
- Benoit Mandelbrot, The Fractal Geometry of Nature
The fact is, that the creation of a town... is fundamentally a genetic process. This conclusion, simple though it is, calls for a shattering revision of our attitude to architecture and planning.
- Christopher Alexander, The Timeless way of Building
The key systemic property of a city is nodality rather than centrality... Since network cities easily exercise control at a distance, the influence of a town has little to do with propinquity...
- Manuel De Landa, A Thousand Years of Non-linear History
I wrote a patch in 2003 to draw Lindenmayer (L-system) root structures. I recently re-visited it to play around with it. I've posted an image gallery, as well as other approaches to representing L-systems (series b, series c) and the Actionscript source code as part of a library including source for generating the kind of flakes I posted back in December. Code for generating cellular automata structures will be added to the library in due course.
The interface between natural and synthetic structures raises its own questions about what we perceive as natural - we have an increasingly volatile conception of nature, and perceptions will alter radically over the coming years and decades thanks to genomics. I like the play in Autechre's EP covers, which are rigorously 'programmed' but betray some resemblance to natural formations,


The flickr code blog has an article on how Flickr is integrating Last.fm gig names into its photo pages using machine tags. We've been including their photos on our event pages for a while now. I head up public API dev at Last.fm, so it's nice to see both systems playing well with each other as a result of our recent API upgrades. It's how the web should work.

Power infrastructure in a favela, by andreasnilsson1976
Charles from Trampoline Systems organized a workshop on emergent democracy last week in Shoreditch. It was kind of interesting. I thought I'd post some quick notes.
First of all here's a rough definition of the phenomenon of emergence: A synergistic property or behaviour of a system that cannot be explained solely by the sum of its component parts; when the organization of a system exhibits dynamic behavioural properties that exist on a macro level in relation to its component parts. Systems that arise out of emergent phenomena are said to be complex.
One example of emergence is the development of the human foetus from the division of a single cell, through further division and specialization, into a complex human body. See Johnson's book Emergence for more examples.
Throughout the discussions it was clear there was a lack of clarity on the difference between strategies for refining democratic participation and a truly emergent system of governance. Emergence resists strategization because by definition it cannot be governed. In an emergent system it is precisely the lack of governance of the whole that allows complexity to arise from the behaviour of individual components reacting to particular constraints (governance at the component level).
This creates an interesting paradox of the expression emergent democracy. The question that the expression raises is this - what changes in participation and organisation will it take for democracy to produce a truly complex system of governance?
Let's take the complex system that arises out of traffic flows in a metropolis as an example of governing complexity. Individual agents (car drivers) are free within a set of constraints (the rules of the road, the placement of traffic lights, one-way streets etc) to make a set of choices about what route to take, how fast to drive, where to stop off and what time to travel. Car drivers really have a lot of freedoms in this system. Traffic flow is a complex system which urban planners try desperately to govern - with differing levels of success, because they don't often have good enough tools to predict the resulting behaviour of 100K+ car drivers. Because the simple rules governing the constraints on drivers mentioned above are increasingly not enough to deal with congestion in cities, governments begin adopting much more holistic governance rules (e.g. a congestion charge).
Admittedly, this is a field seeing a lot of research as a result, but it's an example of how complex systems and governance are often in tension. The rulesets that define cell replication and the instructions encoded in DNA do not attempt to govern the whole that is the human body. If you attempt to govern emergent behaviour with any top-down strategy, you eliminate the free agency of the component parts in the system. The analogy in the traffic flow example would be for urban planners to ban cars and allow people to only use public transport. Like this the level of governance would be such (the governance of routes and schedules so regulated) that the resulting traffic system may not exhibit properties of a complex system at all. What you've done is eliminate the free agents from the system. So it's difficult to imagine how you can successfully 'govern' emergent behaviour (by any accepted notion of governance) without extinguishing complexity; you probably have to re-define political 'governance' in order for it to be plausible.
In a truly emergent democracy, governance would play a role at the component level, in the rulesets that dictate how the individual citizen can participate, but would have to refrain from dictating, regulating or containing the emergent decision making patterns and structures that arise.
Charles highlighted a single change in the nature of voting that may drive emergent democracy: technology will force a shift from fixed place/time voting to continous voting in the near future. He backs this up with various historical reference points as to how technology has affected politics throughout human history. I'm inclined to agree with Charles, and this shift leads to all kinds of questions around representation and participation. Various other people contributed to an interesting discussion on the night:
Mako from Selectricity demonstrated their online polling system which has come out of research into civic technology at MIT; it supports several voting strategies (including preferential, condorcet and borda) and provides a wide variety of feedback on results. You can try out a quickvote for free or contact them for access to more advanced tools.
Sennse from Wikia provided an insight into arbitration and power dynamics at Wikipedia (which she worked at). Interestingly, Wikipedia takes the time to point out it's not an experiment in democracy or any other political system.
Edward from Involve also talked about their collaboration with local government in citizen engagement.
If you want to explore further try Joi Ito's essay on the subject.
In the interest of full disclosure, I should point out that Joichi was an early investor in Last.fm, whom I work for.
If a building is allowed to fail small, early and often, and be corrected, the building as a whole can succeed
- Stewart Brand, How Buildings Learn (1995)
I'd heard of Stewart Brand's book How Buildings Learn before, but didn't know there was an accompanying TV series (with music by Brian Eno). The TV series is available in full online (episodes 1-6). By focusing on what happens to buildings after they're built, Brand articulates lots of principles that we use in software today. Brand's own notes even refer to it:
Most of the 27 reviews on Amazon treat it as a book about system and software design, which tells me that architects are not as alert as computer people.
It's interesting to see so many insights that tie together the two kindred fields of architecture and software design in one place. The fact is architects still struggle with the seeming permanence of their design decisions - even big memes of recent years like parametric design haven't laid the path for conscious design of adaptive buildings yet. And as Brand points out, it's not neccessarily a technological question, simply a re-definition of the architect's role and attitude.
We, on the other hand, have got it easy, working in a fairly pliable medium of pixels on screens, with tight feedback loops and the opportunity to evolve our design over time both available at a low cost.
This talk is worth a look. Forgive the title (which is a misnomer) and the way it frames REST; equating it to feeds designed to be consumed by polling clients - Newtonian physics to PubSub's quanta (poorly formed analogy). REST and RPC simply are suited to other types of services (I fail to see how RPC over XMPP is useful unless the time to process a request is long and callbacks are required). The talk goes on to use concrete examples that illustrate how hijacking Jabber servers and XMPP for generic push messaging using a pubsub architecture is far more efficient for lots of web services outside of IM that are currently pull-based. They even manage to fudge oAuth in for protected resources. It's the kind of pragmatism that smacks of real life problems solved (I salute).
I'd be very surprised if Last.fm's 'now playing' notifications didn't switch over to pubsub very soon.

Boriska, a young boy over-seeing the casting of a bell, in Tarkovsky's Andrei Rublyov
Most developers aren't paid to think about what they build. This "divorce of head and hand", as Richard Sennett puts it, is counter-productive. The more pronounced this divorce, the less likely you are to innovate. Why? Because programming is a craft, and innovation happens in the midst of practising this craft. Sennett's latest book, The Craftsman, is a study of craftsmanship through the ages. I'm writing this as a collection of my after-thoughts on the book (which I'd recommend, despite its grammatically inept first edit).
The workshop ethic
Sennett discusses the history of the workshop and explores what he calls the 'material consciousness' of a craftsman who knows his tools and working materials intimately. In a workshop, authority is equivalent to skill. Historically, the most skilled craftsmen (masters) have had authority over journeymen and apprentices in their workshops. We could learn from a closer modelling of development teams as workshops - most developers are told what to build (and in some cases even how to build it) by managers who don't possess a 'material consciousness' relevant to software engineering, which often leads to problems.
On Engineering
Why does our industry separate out the 'lead engineer' from 'engineering management'? Dealing with software engineering as craft would indicate that a hybrid works better - craftsmen are motivated to work for better craftsmen, in order to improve their skills. In the traditional workshop, the master craftsman would interact with clients (read: product managers/executives) and manage the rest of the craftsmen whilst running the workshop.
By this logic the most effective software engineering manager is an experienced, highly-skilled programmer (hello Mr. Gates). By definition they should still be programming ("If you stop coding, you stop learning" - Beck), for the same reason a master craftsman never actually stops practising his craft. Because to stop practising is to stop evolving the material consciousness that makes you a great craftsman in the first place.
The arguments against this approach are obvious - how's a lead engineer also going to manage developers? Surely he can't do two jobs? Let's take a step back. In order to manage great developers effectively you need to gain their trust and respect. Without this you'll struggle to get anywhere. Upon which we come to a programming truism:
In the work-place, the only way to get the full respect of a skilled programmer is to prove yourself at least as skilled as them at programming, and the only valid evidence is actual working code.
I don't think I've ever met a developer for whom this isn't true. Bear in mind that your average software developer, not known for their humility, will often not dispense this kind of respect until you've coded alongside them (or in a visible forum such as that of an open source project) for a while.
Given this, you can't feasibly manage great devs without being one yourself. I mean you can (it happens all over), but it's a fruitless, unproductive and frustrating operation for all involved compared to what happens when you get it right. In this regard, I'm assuming you agree with the notion that programmer productivity is a completely non-linear phenomenon (see Paul Graham). If you address the issues of trust and respect at the core of a programmer's productivity, you open up a lot of potential. This overrides (by an order of magnitude) the fact that a hybrid lead/manager doesn't have as much time as two separate people, because it gives the individual developer a higher degree of agency in their work and a clear reporting line to a developer that a) speaks the same language as them, and b) which they are motivated to work for and with.
Pretty much all successful startups naturally possess someone who fulfills this hybrid role. It's only when companies grow that this 'workshop' ethic is lost.
Another argument against letting a lead actually manage anything is that the lead has lousy social skills. You'll hear a lot about skilled programmers that are completely socially inept. In application development, I don't even buy this notion. To be a great application developer you have to have superb natural language skills as the entire craft is equal parts natural language and logic. Algorithm-driven programming may well be a different kettle of fish, but app devs absolutely are measured by their capacity to communicate in natural language.
Design & engineering: hybrid minds
This kind of logic about craftsmanship leads to some more questions - particularly around the separation of 'front-end engineering' from 'web design'. Why? The syphoning off of these two disciplines is a symptom of this separation of head and hand; one that stifles the feedback loop of discovery and product evolution at the heart of craftsmanship (the 'designer' only has to think about the final product, not actually craft it). This design/engineering split is obviously evident across sectors (take architects and civil engineers), but rarely do you find a practice like software, where results can be near immediate and design/build feedback is quick. If designer and engineer are to be separated then they will need to work as a hybrid mind in order to innovate in any case (e.g. if Cecil Balmond, a lead at ARUP, and architect Rem Koolhaas hadn't developed this kind of relationship over decades, you wouldn't get results like this).
On technique and expression
Sennett explores the craftsman's worldview that technique "is intimately linked to expression". I believe this to be true. There's an obvious difference between a purely technical innovation (such as the evolution of object-oriented design paradigms in the design of Smalltalk and its dev community in the early eighties) and a software product innovation (e.g. Joshua deciding book-marking the web should be a social activity), but I intuit that the two are linked. Both these types of innovation (indeed, all types of innovation) are highly expressive acts, and it's impossible to be expressive without cultivating expertise in technique.
On 'theoretical' practice
This leads me to think about so-called 'theoretical' disciplines such as pure maths and quantum physics that, whilst being highly abstract, are expressive and require technical expertise. Can such theoretical practices display a 'material consciousness'? Physicist Richard Feynman is a good example of how they can. In Feynman's anecdotal autobiography, he talks about his need to come up with clear material examples when discussing any kind of physics problem, no matter how abstract. His grasp of mathematical techniques was rigorously practical (and as a result, unorthodox) as he was always trying to solve 'real world' problems. He was as skilled in his ability to grasp the right problems (it's no coincidence that the word 'grasp' alludes to the hand and the handling of materials) as he was in his ability to solve them. You can't put it better than Feynman when he says "What I cannot create, I do not understand".
The pyschology of the craftsman
Lastly, a note on what I think might be one of the most illuminating insights into the psychology of the craftsman in the history of art, Tarkovsky's epic film Andrei Rublyov, in particular the penultimate vignette, which depicts a young boy that takes on a commission to cast a huge bell for the Russian Prince in the 13th Century. Those 30 minutes of cinema express a lot more than can be summarised here, depicting in detail the process of founding and casting the bell, and the young boy's descent into a craftman's obsession (his life depends on the bell ringing true). I'd simply ask you to watch it. There are other observations on the artisan/craftsman and their relation to religion and art (a foreign concept in the period the film is set in) throughout the film, which is the (mainly fabricated) biopic of a famous Russian icon painter.
PS: Whenever i've used the term 'craftsman' or 'craftsmen' I actually mean men and women, obviously.
Last night the Tate Modern screened works of early computer art for free in the Turbine Hall. It was a great setting and a superb screening, which included work by Lilian Schwartz and Denys Irving (full listing here). Amongst them was Two Space by Larry Cuba. I can't find it online but the excerpt above gives you a feeling for Cuba's work. All the pieces were a tribute to the use of technological constraints as a creative driving force. I'm hoping more of this early work is published on DVD format at some point.
AS#Enumerable is a port of the Ruby Enumerable API for Actionscript 2.0. It provides the following enumerable methods for use in your flash applications:
It's provided as a subclass of the native Array object, but if you want all native Arrays to inherit the enumerable interface (a la Prototype) just add:
Array.prototype = new Enumerable();to your Flash application. Some basic sample uses of Enumerable:
var enum = [];
enum.push(0.2);
enum.push(0.3);
enum.each(function(item,index) {
trace(item + ':' + index);
});
(Using each for basic iteration).
var enum = [];
enum.push({value:'foo'});
enum.push({value:'bar'});
enum.push({value:'camp'});
var item = enum.find(function(item,index) {
return item.value == 'bar';
});
(Using find to fetch an object from a collection).
var enum = [];
enum.push('foo');
enum.push('bar');
enum.push('camp');
trace(Math.floor(enum.inject(0,function(strlen,string) {
return strlen + string.length;
})/enum.size()));
(Using inject and size to fetch the average string length in a collection of strings).
Go ahead and grab the source code, which will find its permanent home at /code, should you want to check back.
See the prototype enumerable API doc for further documentation, as the usage examples are identical in Actionscript 2.0. Thanks to Sam Stephenson of Prototype for the JS port.
[7:02pm] alex: Haskell users are all pretty nuts.
[7:02pm] johan: when the revolution comes they're first up against the wall
[7:02pm] alex: johan: Actually, they won't.
[7:02pm] alex: Haskell does not guarantee execution order.
it's not enough to just instruct a machine to do something that you need also to think about what will people read in what I write here, so it's programming more like a writer would write, than just thinking of a set of instructions for a machine.
- Kent Beck, OOPSLA interview
Kent has been the biggest single influence on my programming.

Sennett describes craftsmanship as "an enduring, basic human impulse, the desire to do a job well for its own sake". It's a great topic, which has come to my mind a lot with respect to software design. I have always viewed programming as a craft, amongst other things. There are reviews from The Times & The Guardian. I've ordered my copy. Grab yours.
Zimmer is one of our custom-made max/msp instruments which we use in Cacao. Click the image for a full-size version.
This is the year in which hAudio ushers in the era of distributed music publishing and playback on the web. As enthusiastic as I am about OpenId, oAuth and DataPortability (the emerging protocols of the distributed social web), it's microformats that are going to be the building blocks of this shift in the short term. Microformats can be seen as "the nanotech of the semantic web" (Jeremy Keith) and the metaphor for usage is one of proteins and surface-binding. My hope is that this year microformats will have a big impact on media publishing. It's more than a hope because I will be dedicating some of my time to help make it happen.

- 'Silverlight Architecture' schematic, Microsoft
This illuminating 'architecture' drawing from Microsoft manages to pack six (awful) logos and two pieces of packaging onto one stupid schematic. If you're in Microsoft's marketing department, can you please do us all a favour and take extended leave? Please? And leave Visio alone. It's not for you.
Scant time for any kind of thought pieces on here this year. I offer this post as a snapshot of my thoughts on sustainability - a running theme for me of late.
Problem Statement/ Few organisations have managed to create sustainable work environments. Modern industry has largely failed to create sustainable processes.
Thesis/ Corporate models need to be re-invented because people do their best work in sustained group environments. This is true in all co-operative forms of expression (e.g. in most forms of design and engineering). Sustainable industrial processes are key to ecological sustainability and the health of the biosphere.
Myopia/ The 20th Century as a catalogue of short-sightedness. Industry rewards myopia as 'success'.
Percolation/ Sustainability is a timeless design challenge. Its largely unattended problems penetrate all of social life, from the individual through to the corporation and the body politic.
Capital/ Long-term profitability comes from sustainable development. Historically, only 1 in 10 public companies last longer than four decades. [3]
Current/ The notion that market success comes from organisations that hold sustainability as a core principle at all levels, from product design to organisational structure to development processes, is gaining currency.
Child/ The modern corporation, with a history of no more than 150 years or so, is a child in terms of the history of production.
Delight/ Delight as continual learning. No sustainability without some measure of delight.
Diversity/ Diversity as a key ingredient of sustainability. Preservation of diversity in the biosphere as a moral, social, and political goal as well as a commercial one. Preservation of intellectual diversity in a workplace as a purely commercial goal.
Settler/ A sustainable financial, social and intellectual living set-up over a nomadic and erratic one.
Fractal/ Sustainability has a fractal relationship to the Nietzschean notion of 'eternal return' (the ability to live your life as you would wish to live it out an infinite number of times marks the ultimate affirmation of life).
Performance Metric/ Team health. Relative happiness of those expending the effort.
Perspective/ Contrast the modern Perspex industry - dependent on petrochemicals and with a product impossible to recycle without releasing pollutants - to that of Murano Glass - a non-toxic, largely recyclable product that has been produced since 1291.
Growth/ Through the lens of sustainability, Head count in an organisation is not a valid marker for success.
HR/ Modelling people on resources is bad design. People are too complex to be modelled on any contemporary metaphor.
Fossilization/ Vertical power structures fossilize products.
Happiness/ Sustainability as a key ingredient of happiness. We want to be involved in activities that are fundamentally sustainable, because we can then afford to engage in them fully.
Cultivation/ People embrace sustainable forms of product development because everything it implies on a human level - a serious cultivation of teams, retention of people, corporate independence, building products people have a personal investment in - is desirable to the individual. This observation is in sharp contrast to the nomadic form of professional working that has become popular in the western world.
Rhythm/ Keeping motivated as a team over a period of not just months, but years. Preserving momentum.
Consultants/ Companies are unable to cultivate specialized knowledge in all their interest areas since they are not modelled on self-organizing, adaptive organisms. Cue the age of consultants.
Abundance/ What industry calls 'innovation' is creative abundance. How to sustain creative abundance whilst meeting short-term needs (i.e. not going bust).
Democracy/ Democracy itself is a sustainable (political) process. Its principles can therefore be used as building blocks to other sustainable (commercial) processes.
Specialization/ Mechanisms by which specialized knowledge can be spread across organisations without people needing to leave: meet-ups & co-working locations. A consultant eco-system is ultimately problematic for product, departmental & organisational development.
Catalysis/ A horizontal structure hybridized with vertical paths of responsibility elected and erected on-demand. Encourage natural catalysis, intervention.
Co-operation/ Distributed ownership of an organisation feeds accepted responsibility.
Cycle/ Cycles are natural rhythms. Intelligence is a function of feedback bandwidth and quality. Sustainable development as an iterative cycle.
Command/ Companies continue to be based on military-inspired structural models. Tyranny over democracy. Command/divide (and conquer) is still the primary metaphor for conduct. It's an uncompetitive model for a free market.
Atomization of intellect/ An explosion in freelance working has been brought about by the problem statement.
Adaptivity/ How to create a team and process with the capacity to consistently develop not just one great product, but any great product in a given field or even multiple fields.
Self-Organization/ The people that compose a company should be able to shape their organisation's structure, with built-in review processes.
Retention/ Sustainable systems absorb nutrients and release others to nourish wider cycles that are indirectly beneficial to both the system and other co-dependant systems.
Autonomy/ Building a framework of services and tools that allow any new project in an organisation to get off the ground quickly.
Flourish/ Success as an execution of the model abiding by the principles of sustenance. A company as an adaptive organism that doesn't just survive but flourishes.
Accepted Responsibility/ "No single action takes the life out of people more than being told what to do." [4]
Nutrients
[1] Cradle to Cradle: Remaking the Way We Make Things, William McDonough & Michael Braungart, North Point Press
[2] The Ecology of Commerce, Paul Hawken, Collins
[3] Leading By Omission, Ricardo Semler, MIT School of Engineering Talks
[4] Extreme Programming Explained, Second Edition (accepted responsibility), Kent Beck with Cynthia Andres, Addison-Wesley
[5] Scrum Et Al (iterative development), Ken Schwaber (Google Talks)
[6] Small Giants: Companies That Choose to Be Great Instead of Big, Bo Burlingham, Portfolio Hardcover
[7] Birth of the Chaordic Age, Dee W. Hock, Berrett-Koehler Publishers
[8] A Thousand Years of Non-Linear History, Manuel De Landa, Zone Books
[9] Cybernetics: or the Control and Communication in the Animal and the Machine, Norbert Wiener, The MIT Press
Studies in Cellular Automata
Using a Cellular Automata program I wrote a couple of years back. Click on a thumb for a larger version.
Three of the following interface elements are from the new look Delicious, and the other three are from Flickr.
Cristian Vogel, of super_collider fame, has just put his entire new record on Last.fm, straight from the mixing desk - unmastered. So go check out the Night of the Brain previews. Great to see established artists utilising the network in a way that shortcuts the traditional publishing process and gets music direct to the listeners. Nice one Cristian.

Each week the four of us sit down and throw patterns in each others' faces. Last week i threw adaptor. Things got messy - the pdf presentation the only remaining evidence. UML is not evil btw. Big revelation. Growing pains.

The mandatory 'about' screen - What i really wanted to see was a long list of egomaniacal software engineers' names. And a license key number. Listen software, I own you damnit.
Experimental software like quicksilver is exactly why i'm staying on the Mac platform for good. Right now i'm looking at about 87 plug-ins, and sure, functionality and design is completely hit and miss, but when it hits it's like a bolt of energy out of the blue.
It's going beyond a productivity app. It's play, in the philosophical sense,
Derrida's play is a process, a movement elsewhere, a movement outside and into some other sphere, a sphere unknown and unrecognizable to the system that engenders the play. In play, there is also the projection of a problem, a problem that becomes the real subject of analysis, a problem that takes the place of the product or situation that incites play in the first place.
- Ian Bogost
Quicksilver is a prime example of why consistency is overrated in the world of software.