“However, that is not all that pattern languages are supposed to do.”

However, that is not all that pattern languages are supposed to do. The pattern language that we began creating in the 1970s had other essential features. First, it has a moral component. Second, it has the aim of creating coherence, morphological coherence in the things which are made with it. And third, it is generative: it allows people to create coherence, morally sound objects, and encourages and enables this process because of its emphasis on the coherence of the created whole.

I don’t know whether these features of pattern language have yet been translated into your discipline. Take the moral component, for example. In the architectural pattern language there is, at root, behind the whole thing, a constant preoccupation with the question, Under what circumstances is the environment good? In architecture that means something. It means something important and vital that goes, ultimately, to the nature of human life. Of course, there are plenty of people who will debate whether the question is objective. Some architects are still going around saying, It is all a matter of opinion. But that is a dying breed. The moral preoccupation with the need for a good environment, and for the living structure of built environment, and the objective nature of that question, is largely accepted. I do not know whether that sort of moral component exists in computer science, or in software engineering, or in the way in which you do  things.

I understand that the software patterns, insofar as they refer to objects and programs and so on, can make a program better. That isn’t the same thing, because in that sentence “better” could mean merely technically efficient, not actually “good.” Again, if I’m translating from my experience, I would ask that the use of pattern language in software has the tendency to make the program or the thing that is being created is morally profound — actually has the capacity to play a more significant role in human life. A deeper role in human life. Will it actually make human life better as a result of its injection into a software system? Now, I don’t pretend that all the patterns that my colleagues and I wrote down in A Pattern Language are like that. Some of them are profound, and some of them are less so. But, at least it was the constant attempt behind our work. That is what we were after. I don’t know whether you,  ladies and gentlemen, the members of the software community, are also after that. I have no idea. I haven’t heard a whole lot about that. So, I have no idea whether the search for something that helps human life is a formal part of what you are searching for. Or are you primarily searching for – what should I call it – good technical performance? This seems to me a very, very vital issue.

Christopher Alexander’s keynote at the 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications

However, that is not all that pattern languages are supposed to do. The pattern language that we began creating in the 1970s had other essential features. First, it has a moral component. Second, it has the aim of creating coherence, morphological coherence in the things which are made with it. And third, it is generative: it allows people to create coherence, morally sound objects, and encourages and enables this process because of its emphasis on the coherence of the created whole.

I don’t know whether these features of pattern language have yet been translated into your discipline. Take the moral component, for example. In the architectural pattern language there is, at root, behind the whole thing, a constant preoccupation with the question, Under what circumstances is the environment good? In architecture that means something. It means something important and vital that goes, ultimately, to the nature of human life. Of course, there are plenty of people who will debate whether the question is objective. Some architects are still going around saying, It is all a matter of opinion. But that is a dying breed. The moral preoccupation with the need for a good environment, and for the living structure of built environment, and the objective nature of that question, is largely accepted. I do not know whether that sort of moral component exists in computer science, or in software engineering, or in the way in which you do  things.

I understand that the software patterns, insofar as they refer to objects and programs and so on, can make a program better. That isn’t the same thing, because in that sentence “better” could mean merely technically efficient, not actually “good.” Again, if I’m translating from my experience, I would ask that the use of pattern language in software has the tendency to make the program or the thing that is being created is morally profound — actually has the capacity to play a more significant role in human life. A deeper role in human life. Will it actually make human life better as a result of its injection into a software system? Now, I don’t pretend that all the patterns that my colleagues and I wrote down in A Pattern Language are like that. Some of them are profound, and some of them are less so. But, at least it was the constant attempt behind our work. That is what we were after. I don’t know whether you,  ladies and gentlemen, the members of the software community, are also after that. I have no idea. I haven’t heard a whole lot about that. So, I have no idea whether the search for something that helps human life is a formal part of what you are searching for. Or are you primarily searching for – what should I call it – good technical performance? This seems to me a very, very vital issue.

Christopher Alexander’s keynote at the 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications

The OpenStreetmap New Data Model Army

“The question of distributed revisions and distributed reversion. This is something I’m looking for, more than is spelled out in the New Data Model. It connects to “identity” of contributors, and federating identity between different read/write data access points. Imagine a parallel universe in which read/write – e.g. transactional – clients were writing back to different physical instances of a data store. Subsequently all the changes are being collected into one central “view” of the world depicted. Given this parallel universe also contains a satisfactory way to conflate changes – e.g. one original geometry is changed in 2 different ways by 2 different people and subsequently resolved back into one changed object. (I recall seeing a good presentation on doing this at OSGeo ‘05 in Minneapolis…)What subsequently happens when one wants to do distributed reversion? E.g., to subsequently decide that one set of changes to a shape was “unreliable” but the other wasn’t. Would one have to rollback the geometry to its original state, then subsequently re-apply one set of changes but not the other, creating a revised version? Perhaps this is the view from Mars – I love to speculate about solutions to problems we don’t yet have, but can only predict. Yet this looks obvious to me – a problem that we can’t avoid having. The conviction that, for technological, social and legal reasons alike, OSM will one day have to federate its data store, goes back with me a long way. Frederik and Jochen don’t think so – the paper states that a central data cluster, one ring to rule them all, is the only thng viable now. Perhaps to suggest otherwise is to unwisely invite contention.”

Jo Walsh, Mapping Hacks » Blog Archive  » The OpenStreetmap New Data Model Army

“The question of distributed revisions and distributed reversion. This is something I’m looking for, more than is spelled out in the New Data Model. It connects to “identity” of contributors, and federating identity between different read/write data access points. Imagine a parallel universe in which read/write – e.g. transactional – clients were writing back to different physical instances of a data store. Subsequently all the changes are being collected into one central “view” of the world depicted. Given this parallel universe also contains a satisfactory way to conflate changes – e.g. one original geometry is changed in 2 different ways by 2 different people and subsequently resolved back into one changed object. (I recall seeing a good presentation on doing this at OSGeo ‘05 in Minneapolis…)What subsequently happens when one wants to do distributed reversion? E.g., to subsequently decide that one set of changes to a shape was “unreliable” but the other wasn’t. Would one have to rollback the geometry to its original state, then subsequently re-apply one set of changes but not the other, creating a revised version? Perhaps this is the view from Mars – I love to speculate about solutions to problems we don’t yet have, but can only predict. Yet this looks obvious to me – a problem that we can’t avoid having. The conviction that, for technological, social and legal reasons alike, OSM will one day have to federate its data store, goes back with me a long way. Frederik and Jochen don’t think so – the paper states that a central data cluster, one ring to rule them all, is the only thng viable now. Perhaps to suggest otherwise is to unwisely invite contention.”

Jo Walsh, Mapping Hacks » Blog Archive  » The OpenStreetmap New Data Model Army

“The Graticule Ruby gem makes it super easy to geocode addresses using multiple services. One thing…”

“The Graticule Ruby gem makes it super easy to geocode addresses using multiple services. One thing I’ve found in developing Unthirsty is that sometimes a geocoding service either fails to be reached or the address couldn’t be found. So as a precaution, I’ve set up a way for Graticule to failover to another service if a lookup fails. Here’s how.”

via mattking.org

“The Graticule Ruby gem makes it super easy to geocode addresses using multiple services. One thing I’ve found in developing Unthirsty is that sometimes a geocoding service either fails to be reached or the address couldn’t be found. So as a precaution, I’ve set up a way for Graticule to failover to another service if a lookup fails. Here’s how.”

via mattking.org