<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>tag:blogger.com,1999:blog-3001552519083838967</id><updated>2024-10-04T19:38:04.635-07:00</updated><category term="technology"/><category term="computing"/><category term="ethics"/><category term="business"/><category term="eigenharp"/><category term="land rover 101"/><category term="agile"/><category term="music"/><category term="beauty"/><category term="brain"/><category term="diy"/><category term="management"/><category term="morals"/><category term="software"/><category term="start-up"/><category term="straiton"/><category term="wind-farm"/><category term="humour"/><category term="leadership"/><category term="leveson"/><category term="python"/><category term="self-organisation"/><title type="text">Mental Hopscotch</title><subtitle type="html">A seemingly random walk through my thoughts and actions</subtitle><link href="http://stigmergist.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default?redirect=false" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/" rel="alternate" type="text/html"/><link href="http://pubsubhubbub.appspot.com/" rel="hub"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" rel="next" type="application/atom+xml"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><generator uri="http://www.blogger.com" version="7.00">Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-3688139526705043268</id><published>2021-03-01T08:41:00.001-08:00</published><updated>2021-03-01T08:41:42.962-08:00</updated><title type="text">Moving this blog</title><content type="html">&lt;p&gt;&amp;nbsp;I'm moving off this platform and over to &#128073;  &lt;a href="https://stigmergist.github.io/thinking-whilst-typing/moving-my-blog/"&gt;https://stigmergist.github.io/thinking-whilst-typing/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link href="http://stigmergist.blogspot.com/feeds/3688139526705043268/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2021/03/moving-this-blog.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/3688139526705043268" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/3688139526705043268" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2021/03/moving-this-blog.html" rel="alternate" title="Moving this blog" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-7960579154818495970</id><published>2013-08-04T06:30:00.001-07:00</published><updated>2013-08-04T06:39:22.044-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Software : Tradesmen not Craftsmen</title><content type="html">I've always felt uncomfortable with the Software Craftsmanship term. It smacks of elitism, doing something for its own sake, boastfulness, idealism, disconnection from the fuller reality of the rest of the world. I have never understood why we would want code to be built by craftsmen, it makes me think of finely wrought things built in economically unjustifiable ways, invested with value beyond the material or utilitarian. Craftsmen seem to be isolated specialists honing the individual item for a high-margin market of collectors, or the hobbyist hand-building an item of legacy.&lt;br /&gt;
&lt;br /&gt;
Craftsmanship feels like therapeutic self-absorption, a kind of narcissistic activity - one which seeks self-affirmation and views everything as an extension of the practitioner's will. The product of craftsmanship is an item that does not have independent value - it is cherished by the craftsman and he is proud of what he has made, it is cherished by the owner as an extension of the craftsman. Craftsmen are possessive and tied to the incarnation of their labours.&lt;br /&gt;
&lt;br /&gt;
This does not sit well with my feelings about software and good software practitioners - who in my experience are more tradesmen than craftsmen.&lt;br /&gt;
&lt;br /&gt;
Tradesmen operate in a way that is aimed at being extrinsically useful to the rest of the world. The objects they deal with are of utility outside of the tradesman to people who will never know them. Tradesmen operate in a hands-on manner to build or fix systems, working with what they find, self-correcting through doing, in the service of others and take satisfaction in the manifestation of concrete work - which somehow removes the need to vindicate their worth through explaining the value to others. They work in a manner which shows solidarity with other tradesmen : working the code into understandable, recognized patterns that make it easy for the next tradesman to build or fix, they often work together as peers, using their better judgement when the rules run out, preferring face to face interactions that support how they take responsibility for their own work. Tradesmen gain many of the same satisfactions of the craftsman but provide economic utility to a broader market, plus the work is meaningful to them &lt;u&gt;because it is &lt;b&gt;useful&lt;/b&gt; to others&lt;/u&gt;.&lt;br /&gt;
&lt;br /&gt;
I think the Software Craftsmanship movement is badly named and in its naming is setting the wrong objective. It is not the software itself where the craftsmanship needs to lie but in the practitioners themselves. To be a tradesman you need to understand the craft of your work, but this does not mean you are delivering craftsmanship pieces.&lt;br /&gt;
&lt;br /&gt;
To be clear, I think many of the activities undertaken by the Software Craftsmanship community are exactly what need to be done to generate an effective software-as-a-trade approach - but a good deal of renaming and refactoring needs to be done to clarify why it is of value to the general population of developers out there. The fact is software development is a trade, practiced to various degrees by a large number of people who have no interest in being elitist coding craftsman, and in fact are turned-off from what might be valuable insights for them by the very notion of "craftsmanship". Scientists, engineers, accountants, (god-forbid) management consultants and many more all routinely write software, but have no engagement with the craft of software development.&amp;nbsp; As a literal comparison they are the &lt;a href="http://en.wikipedia.org/wiki/Bodging"&gt;bodgers&lt;/a&gt; to the Software Craftsmen cabinet makers - and it does a disservice to both camps that this separation exists.&lt;br /&gt;
&lt;br /&gt;
What can be done ?&lt;br /&gt;
&lt;br /&gt;
Firstly, let's just admit it: software development is manual labour undertaken by a variety of people with different aims in mind. There will always be room for everyone from craftsmen to architects to bodgers - but as with many other industries, the general economic progress begins with the recognition that there is a trade, which is not elitist and exclusive, but inclusive and aimed at adding value to society.&lt;br /&gt;
&lt;br /&gt;
Secondly: embrace being a Software Tradesman&lt;br /&gt;
&lt;br /&gt;
I make my livelihood from creating and fixing software. I get a kick from the use of my software by people who have never met me, nor would care about the code itself.&amp;nbsp; I use other peoples' code and systems and contribute my own. I work closely with other tradesmen improving both my skills and theirs through hands-on co-operation. I have solidarity with other tradesmen. And I do it because I am skilled at it and it is useful to others.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;I am proud to be a Software Tradesman, not a Craftsman. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/7960579154818495970/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/08/software-tradesmen-not-craftsmen.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/7960579154818495970" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/7960579154818495970" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/08/software-tradesmen-not-craftsmen.html" rel="alternate" title="Software : Tradesmen not Craftsmen" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-2633876262562100926</id><published>2013-06-01T06:42:00.003-07:00</published><updated>2013-06-01T06:46:00.289-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="beauty"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="straiton"/><category scheme="http://www.blogger.com/atom/ns#" term="wind-farm"/><title type="text">Modelling Windfarms with SketchUp and Google Earth</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFYmCrzLG0XIi5B359G9aEcr5GHVL4a3DKh0J426t-V2WAn-r-kuC_0K6EeKsVO_AJsi6FEUXJ5xhLNe_B6P-6pBtTBT6yYljyoXZUmCI1ty1SfXpvmR2EjvBGpSoef_DcmSKkfVspuEpM/s1600/snap3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFYmCrzLG0XIi5B359G9aEcr5GHVL4a3DKh0J426t-V2WAn-r-kuC_0K6EeKsVO_AJsi6FEUXJ5xhLNe_B6P-6pBtTBT6yYljyoXZUmCI1ty1SfXpvmR2EjvBGpSoef_DcmSKkfVspuEpM/s640/snap3.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
The area where I live in Scotland is under threat from 130 industrial wind turbines. These 125m+ pieces of machinery are being proposed by five different organizations in groups of 17-35 turbines. Each organization turns up with their presentations, rhetoric and photo-renderings of the turbines. Some do show 3D models but they are quite bland and you can't really get to play with them. But the major issue is that you can never see the impact on the landscape of all five proposals &lt;u&gt;TOGETHER&lt;/u&gt;.&lt;br /&gt;
&lt;br /&gt;
Now I think this is an unethical practice : they are all aware of the other proposals and if they had true concern/care for the community would they not group together to provide the community a full model of the combined proposals? It feels underhand to only show their own proposal in full knowledge that there are other proposals along side.&lt;br /&gt;
&lt;br /&gt;
So I decided to build a model myself of the full picture, combining the information provided so far by the developers. If they won't do it, I would.&lt;br /&gt;
&lt;br /&gt;
Using&lt;a href="http://www.sketchup.com/"&gt; Google SketchUp&lt;/a&gt; I found and scaled a wind turbine models according to the data (thanks "Peter" whoever you are). Using the SketchUp Geo-Location feature I was able to place these models with tolerable accuracy in the landscape, according to the data provided by the developers so far. I then could export this into a format that &lt;a href="http://www.google.co.uk/intl/en_uk/earth/index.html"&gt;Google Earth&lt;/a&gt; could render (KMZ). And: Hey Presto! A fully interactive model of all five proposals &lt;u&gt;TOGETHER&lt;/u&gt;.&lt;br /&gt;
&lt;br /&gt;
It took me an afternoon. So I now have a metric of how much the developers value giving good information to the community : an afternoon's work.&lt;br /&gt;
&lt;br /&gt;
There are some huge advantages to this Google Earth model :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;full interactive and can be viewed from various vantage points in comfort of own home&lt;/li&gt;
&lt;li&gt;works on laptops, PCs and tablets&lt;/li&gt;
&lt;li&gt;can see how different light levels effect wind turbines in landscape : in particular I never thought about how the morning/evening light will be incident on the turbines when it is already dark in the valleys. They shall be towering shafts of light above the dark earth - how is this not destroying the landscape ?&lt;/li&gt;
&lt;li&gt;contains colour landscape based on satellite photographs (developers' ones tend to be topology only and monotone/wireframe)&lt;/li&gt;
&lt;li&gt;can be easily shared for others to explore (see below)&lt;/li&gt;
&lt;/ul&gt;
I have to say I'm very impressed with the SketchUp/GoogleEarth combination. Thank you , Google.&lt;br /&gt;
&lt;br /&gt;
There are a few limitations :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;it's tricky to get elevation right between SketchUp and Google Earth. What appears correct in SketchUp is sometimes off in Google earth.&amp;nbsp; (Unless I can't figure it out - if you know how to do it, please let me know) &lt;/li&gt;
&lt;li&gt;need a network connection for Google Earth to work&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
But, hey, that's not a huge list or set of problems !&lt;br /&gt;
&lt;br /&gt;
Now, if you're a developer and want to challenge the accuracy/validity of this model, please do get in touch. I am happy to work with you to get this right - in fact, I am happy to hand the model over to you so you can keep it up to date. It's not 100% correct but it's good enough to show the full picture of the combined impact.&lt;br /&gt;
&lt;br /&gt;
On a "protecting the landscape" note: please do download and have a look at this model. Try going to various places and looking at the aspects (even compare StreetView with the rendering at ground level). The model gives a really good feel of how these skyscraper sized turbines are entirely inappropriate in this landscape.&lt;br /&gt;
&lt;br /&gt;
If you want to look at the model:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;download and install &lt;a href="http://www.google.co.uk/intl/en_uk/earth/index.html"&gt;Google Earth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;download this &lt;a href="https://docs.google.com/uc?export=download&amp;amp;id=0B4Y0Fmk62VVvNzV6Zk1RX2dFWlE"&gt;KMZ File&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;if it does not automatically open in Google Earth, save it and open it directly from Google Earth&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/2633876262562100926/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/06/modelling-windfarms-with-sketchup-and.html#comment-form" rel="replies" title="1 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/2633876262562100926" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/2633876262562100926" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/06/modelling-windfarms-with-sketchup-and.html" rel="alternate" title="Modelling Windfarms with SketchUp and Google Earth" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFYmCrzLG0XIi5B359G9aEcr5GHVL4a3DKh0J426t-V2WAn-r-kuC_0K6EeKsVO_AJsi6FEUXJ5xhLNe_B6P-6pBtTBT6yYljyoXZUmCI1ty1SfXpvmR2EjvBGpSoef_DcmSKkfVspuEpM/s72-c/snap3.jpg" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-4560949010338422496</id><published>2013-03-17T03:13:00.000-07:00</published><updated>2013-03-18T05:33:32.128-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="beauty"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="straiton"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><category scheme="http://www.blogger.com/atom/ns#" term="wind-farm"/><title type="text">Your Help Is Needed To Protect A Community</title><content type="html">&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYri5yrZ6iGvCeUgPU0XPvw2IDXRAKtWtwHjGIssp6OMOn7FaCVor4OTtkpkZSlz7O-JA4idzudlKuTuzk9G7QM1CLH2ChhpZ5jzIExQ6my-xPH5ryrEDLq4G5TT4M8msnyySHpdmA23r/s1600/Screen+Shot+2013-03-16+at+15.48.13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="94" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYri5yrZ6iGvCeUgPU0XPvw2IDXRAKtWtwHjGIssp6OMOn7FaCVor4OTtkpkZSlz7O-JA4idzudlKuTuzk9G7QM1CLH2ChhpZ5jzIExQ6my-xPH5ryrEDLq4G5TT4M8msnyySHpdmA23r/s640/Screen+Shot+2013-03-16+at+15.48.13.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
I am privileged to live in a beautiful place. Its physical landscape is breathtaking, but more than that the people and the community have created a wonderful place - both to live and for tourists to visit.&lt;br /&gt;
&lt;br /&gt;
But it is under threat of destruction by the building of 130 giant, industrial wind turbines. They threaten not just the physical landscape, but the people and the community, too.&lt;br /&gt;
&lt;br /&gt;
It is entirely inappropriate for these wind-farms to be built in this location.&lt;br /&gt;
&lt;br /&gt;
Before you dismiss this blog entry as another anti-wind-farm, NIMBY rant, let me be clear: I am neither pro- or anti-wind-farm, I am arguing for the protection of beauty. Beauty which is as much yours as it is mine. Energy is far more abundant in the world than beauty, so we must fight to preserve beauty, in landscape and community, where we find it.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
The Assault On Beauty&lt;/h4&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyLJQSaYf5wuVJO48VRA8T8AcnXzv3x_t3qYi4rDB65_ddB5QLDolpqTo_Qz4PcsYVu5Hwdr_le2bksmL5zZv5vkrMyMuVjsopo3nGR8CTzFltHlIJ0udF4c2eeXbzTVQwCWcyyzL6P-sE/s1600/Screen+Shot+2013-03-16+at+14.51.15.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyLJQSaYf5wuVJO48VRA8T8AcnXzv3x_t3qYi4rDB65_ddB5QLDolpqTo_Qz4PcsYVu5Hwdr_le2bksmL5zZv5vkrMyMuVjsopo3nGR8CTzFltHlIJ0udF4c2eeXbzTVQwCWcyyzL6P-sE/s320/Screen+Shot+2013-03-16+at+14.51.15.png" width="232" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Adapted from Yoni Alter's &lt;a href="http://www.behance.net/gallery/Shapes-of-Cities/6610861"&gt;Shapes Of Cities&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
There are 5 proposals by separate companies in this area. They are all for wind-turbines with tip-heights of 115-146 metres. In total the proposals are for 130. &lt;br /&gt;
&lt;br /&gt;
To give you some idea of scale, they are 1.2-1.5x times the height of Big Ben, or just under half the height of The Shard. Or for non-Brits, 1.2-1.5x times the height of the Statue of Liberty, one third the height of the Empire State Building.&lt;br /&gt;
&lt;br /&gt;
130 of these in any human landscape is unacceptable. Consider London with 130 of these scattered from Hyde Park to the City. Or New York with 130 turbines of this scale from Central Park to Midtown.&lt;br /&gt;
&lt;br /&gt;
So why is this acceptable where we live ?&lt;br /&gt;
&lt;br /&gt;
In this landscape and community,&amp;nbsp; the acceptable number is zero. &lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1MfUq3gAcLSFNTRKgTLxCZcgNk5C0aqjWQsFazssCivy6V0ql2bR9S5zF9qQa06iQ_xjopuBZRmNikJuf0sw_GlDHMsuKyj-0P9SnllA7MjZdlOKyOyvWj1_MpXTPwm7Ix7NkDJAlOou7/s1600/Screen+Shot+2013-03-17+at+08.56.48.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1MfUq3gAcLSFNTRKgTLxCZcgNk5C0aqjWQsFazssCivy6V0ql2bR9S5zF9qQa06iQ_xjopuBZRmNikJuf0sw_GlDHMsuKyj-0P9SnllA7MjZdlOKyOyvWj1_MpXTPwm7Ix7NkDJAlOou7/s320/Screen+Shot+2013-03-17+at+08.56.48.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;For more information see the &lt;a href="http://savestraitonforscotland.com/about/planning-overview/#siteplans"&gt;Planning Overview&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
And it's not just somewhere on the hills near Straiton, its effectively a "ring of steel" around the village.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Furthermore, there are no clear plans for the power lines to take the energy away from these wind-farms to the supply grid (there is no existing infrastructure here of that scale). Amazingly, it is not a necessary part of the planning applications. &lt;br /&gt;
&lt;br /&gt;
The siting of wind farms near any habitation - that's any house not just near towns or villages - is at best irresponsible if not unethical. The long-term effects of exposure to the audio and visual pollution they generate is unclear. There is much speculation and rumour out there on both sides of the argument, but have we not learnt from other technologies we have rushed to benefit from that the ignorance of the long-term effects can have catastrophic results? Radium, thalidomide, cigarettes, internal combustion engines, oil/coal fired power generation… If nothing else we should be guided by these histories and look to place an uncertain technology well away from communities and people - if anything, for wind-power, is offshore not the most responsible place ? (The irony of pro-wind-farm lobby ignoring the lessons of the oil/coal power effects would be funny if it were not so irresponsible)&lt;br /&gt;
&lt;br /&gt;
There is further outrage with this particular assault on beauty: Straiton is sited on the edge of the UK's first &lt;a href="http://www.forestry.gov.uk/darkskygalloway"&gt;Dark Sky Park&lt;/a&gt;, is on the edge of a &lt;a href="http://www.gallowayandsouthernayrshirebiosphere.org.uk/"&gt;UNESCO Biosphere Reserve&lt;/a&gt; and contains a number of recognized points of natural and scientific interest (inc. SSSIs, rare animals, birds, etc.). As my wife said, "not only the earth beneath our feet but the heavens above us have been recognized for their beauty by the world". Yet it is possible that this internationally recognized place could be scarred with 130 giant turbines. Not only does it make me angry, it makes me ashamed that this is possible. How is it that our local government, the Scottish government and the UK government would see this as permissible ? And that the defense of this area comes down to volunteers spending their own money and raising funds against the onslaught of well-funded developers ?&lt;br /&gt;
&lt;br /&gt;
So this is one reason why we need your help.&lt;br /&gt;
&lt;br /&gt;
Another reason is because this community is small and relies on tourists for much of its economy. And with 130 industrial turbines, would you stay in such a place on holiday ?&amp;nbsp; There is much to be argued against in the claims of "economic benefits" in these proposals - but that is for another blog entry - but just think of the most basic fact: a small community will lose one of its primary incomes. A community which is too small by itself to hold sway in Edinburgh or London or the World - but a place where people from Edinburgh, London and the World currently come to visit, for its peace, beauty and community. A peace and beauty that will be lost, and so the community will be lost. We need your help.&lt;br /&gt;
&lt;h4&gt;
How Can You Help ? &lt;/h4&gt;
Firstly: &lt;b&gt;become informed &lt;/b&gt;: about this particular situation, and others just like it elsewhere - maybe even on your doorstep. Think about the &lt;a href="http://wellmedicated.com/lists/40-gorgeous-vintage-tobacco-advertisements/"&gt;"positive benefits" advertising&lt;/a&gt; for cigarettes, and the 
subsequent consequences of ill-informed adoption: what might &lt;u&gt;you&lt;/u&gt; do to 
to not be ill-informed? &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Have a look at &lt;a href="http://www.savestraitonforscotland.com/"&gt;Save Straiton For Scotland&lt;/a&gt; for more information and &lt;a href="http://savestraitonforscotland.com/news/"&gt;up-to-date stories&lt;/a&gt; about this situation. Follow &lt;a href="http://twitter.com/SaveStraiton"&gt;@savestraiton&lt;/a&gt; on twitter.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Be skeptical about the default "green is good; wind-farms are good" attitude pushed by the PR and marketing departments of many companies and political bodies. Read up on the subject, and make up your own mind &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;read informed, balanced journalism like &lt;a href="http://www.telegraph.co.uk/earth/energy/windpower/"&gt;The Telegraph's&lt;/a&gt; or &lt;a href="http://www.guardian.co.uk/environment/windpower"&gt;The Guardian's&lt;/a&gt; pieces on wind-farms&lt;/li&gt;
&lt;li&gt;think about the economics of wind-farms and take some time to investigate where the money goes - and how value in property and the loss of primary tourist based income might effect a community. Do the economic claims of wind-farm proponents really add up? How many jobs, and of what type, do they create ? Permanent or temporary ? Local, domestic or foreign ?&lt;/li&gt;
&lt;li&gt;find out about how much energy it takes to build, transport, and install a wind-turbine (or 130!). How does this balance out against the efficiency of the power they generate and the long-term energy requirements to then dismantle and remove them after 20 years ?&lt;/li&gt;
&lt;li&gt;what are they alternatives to siting large scale, onshore wind-farms near human habitation ? Offshore ? Hydro ? Wave ? Personal scale wind/water/solar ?&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
Secondly, &lt;b&gt;provide support&lt;/b&gt; to &lt;a href="http://savestraitonforscotland.com/"&gt;SaveStraitonForScotland&lt;/a&gt; :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;obviously there are costs involved in challenging the plans and applications by the deep-pocketed wind-farm companies. Please &lt;a href="http://savestraitonforscotland.com/donate/"&gt;donate&lt;/a&gt; if you can.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;if you have any relevant skills that you could provide, please &lt;a href="http://savestraitonforscotland.com/contact/"&gt;contact the committee&lt;/a&gt; (or I can put you in touch). Particularly: planning, lobbying, legal, fund-raising, PR or awareness.&lt;/li&gt;
&lt;li&gt;please retweet/link/blog/write/text/talk/shout about this to people you know. Highlight the assault on beauty that is happen in Straiton, and support the efforts of the group.&lt;/li&gt;
&lt;li&gt;please contribute comment on &lt;a href="http://savestraitonforscotland.com/"&gt;SaveStraitonForScotland&lt;/a&gt; and provide links in to it from any web-properties you have (like blogs or websites)&lt;/li&gt;
&lt;/ul&gt;
Thirdly, &lt;b&gt;take action&lt;/b&gt; : &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;please help &lt;a href="http://savestraitonforscotland.com/lobby/"&gt;lobby the relevant politicians and decision makers&lt;/a&gt;. Write to them, call them, tweet them. &lt;u&gt;Especially if you are not a local&lt;/u&gt; - tell them what you think of these plans, tell them if it would effect your willingness to visit Straiton and South Ayrshire on vacation.&lt;/li&gt;
&lt;li&gt;lobby your own representatives about the issues and bring pressure to bear. The people, the environment and the community are inseparable, and need to be preserved.&lt;/li&gt;
&lt;li&gt;if you are an investor in funds, please investigate whether any of your management companies are undertaking any such proposals; and if they are and you find objection to the concept, please intervene with them and withdraw the funding. Let me be clear: it is not green-energy/wind-farms that is the issue, it is the destruction of beauty and undermining of communities which is the problem. Investing your funds in alternates like offshore or wave power is possibly more socially responsible.&lt;/li&gt;
&lt;li&gt;come visit Straiton ! Showing your physical support and coming to see and understand what an asset this area is to the country helps our cause and supports the morale of the team. Plus your tweets/blogs about your visit can increase awareness of the fight. If you do come, please let me know so I can at least give you a wee dram in thanks !&lt;/li&gt;
&lt;/ul&gt;
Finally, no matter what: &lt;b&gt;save energy.&lt;/b&gt; Switch off lights when you leave a room, don't leave items on stand-by, buy something like a &lt;a href="http://www.diykyoto.com/uk/aboutus/wattson-classic"&gt;Watson&lt;/a&gt; and monitor your power usage. By doing this, you help reduce the amount of energy we need - which ultimately reduces the need for wind-farms, power stations and other generation technologies on industrial scales.&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
</content><link href="http://stigmergist.blogspot.com/feeds/4560949010338422496/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/03/your-help-is-needed-to-protect-beauty.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4560949010338422496" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4560949010338422496" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/03/your-help-is-needed-to-protect-beauty.html" rel="alternate" title="Your Help Is Needed To Protect A Community" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYri5yrZ6iGvCeUgPU0XPvw2IDXRAKtWtwHjGIssp6OMOn7FaCVor4OTtkpkZSlz7O-JA4idzudlKuTuzk9G7QM1CLH2ChhpZ5jzIExQ6my-xPH5ryrEDLq4G5TT4M8msnyySHpdmA23r/s72-c/Screen+Shot+2013-03-16+at+15.48.13.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-1349552235304961685</id><published>2013-01-28T04:07:00.000-08:00</published><updated>2013-01-28T06:03:18.513-08:00</updated><title type="text">The Value is the X-ing not the X</title><content type="html">A Twitter interaction over the weekend reminded me of some other exchanges I've had in recent years about Agile software development. A number of times I have encountered people and groups who vehemently argue that X is a problem, where X is any of Tests, Estimates, Pairs, Plans, Backlogs, etc. The rhetoric often revolves around X being imposed by management and therefore bureaucratic, or X being a waste of time and so by Lean rules should be eliminated (...let's not go down that rabbit hole, eh?) , or one of a dozen other positional, somewhat questionable arguments. When I take the bait and fall into the discussion I find my understanding of the purpose of X and their understanding of the purpose of X is vastly different. I see the interaction with other people in X-ing as valuable and the X is just the driving goal, whereas they see X as the valuable thing in itself no matter how you get there.&lt;br /&gt;
&lt;br /&gt;
Upon reflection, it seems to me that the adoption of Agile has concentrated on the artifacts (X) and not the interactions between people (X-ing). It seems to have skipped the first value line of the Agile Manifesto : "Individuals and interactions over processes and tools". &lt;br /&gt;
&lt;br /&gt;
In my model of Agile software development, the artifacts X are really just aide-memoires for the people involved in the interactions. Both the people and the Xs are involved in multiple interactions and move together. The Xs are not isolated, complete, self-describing artifacts - they are pointers into conversational contexts that are held within the people involved. They are extensions of group memories. Without the interactions of X-ing (or subsequent related interactions, Y-ing) they have NO VALUE.&lt;br /&gt;
&lt;br /&gt;
Yes, you heard me right: Tests, Estimates, Pairs, Backlogs, etc. HAVE NO VALUE in themselves.&lt;br /&gt;
&lt;br /&gt;
It is the interactions of Testing, Estimating, Pairing, Backlog-ing, etc'ing which has value in an Agile software development process. The artifacts are a way of dealing with volume and time. If you had a small amount to do in a short time, would you need the artifacts? I think not. Would you need the interactions? I think so.&lt;br /&gt;
&lt;br /&gt;
This has somehow been lost during the adoption of Agile. You can see it in the arguments about the best format for story cards, or whether JIRA is good for storing tasks, or which mock testing framework is best. It's all about the artifacts, rarely the interaction.&lt;br /&gt;
&lt;br /&gt;
In my more cynical moments, I blame it on the cargo-cult approach to Agile adoption. A prophet (read Agile Evangelist/Coach/Guru) joins a team, bringing the message that Agile is good; by adopting the artifacts and rituals of Agile the gods of software delivery shall grant peace, harmony and profitability to all. The team undertake the rituals of parade drilling, Saturday dances, etc. (read stand-ups, planning, etc.) and create the bamboo airfield, bamboo rifles, etc. (read estimates, test, etc.). At first things seem good as everyone is co-operating on this new venture, but somehow...somehow...over time...it doesn't work. The gods don't deliver. What went wrong ? Obviously it was either the artifacts weren't good enough or the rituals weren't observed correctly. The team members are at fault - try again. Nope, still not working. It must be the artefacts and rituals that are wrong; reject them and adopt another cult...or better: invent your own!&lt;br /&gt;
&lt;br /&gt;
What cargo-cult adoption fails to install is the behaviours required for successful interaction. To me, that was the big difference with Agile. The nature of the interactions changed to real conversation about what we are doing, how we will succeed. The artifacts and practices were supportive of the conversations, but the value was the different nature of conversations. &lt;br /&gt;
&lt;br /&gt;
I think one of the reasons early adopters were successful with Agile (and I think this may be true of most new technologies) is that by the very nature of trying to learn and discover this new technique and what it meant to the team in a vacuum of definitive description (i.e. no manual), the behaviour was naturally more reflective, more listening to each other, more experimental with feedback. Once, it "crosses the chasm" and prophets bring the news to the masses the nature of adoption changes, and that form of conversation and interaction has been lost.&lt;br /&gt;
&lt;br /&gt;
So next time you see me rising to an artifact argument, please remind me: the value is the X-ing, not the X.</content><link href="http://stigmergist.blogspot.com/feeds/1349552235304961685/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/01/the-value-is-x-ing-not-x.html#comment-form" rel="replies" title="9 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/1349552235304961685" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/1349552235304961685" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/01/the-value-is-x-ing-not-x.html" rel="alternate" title="The Value is the X-ing not the X" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-7068580602647629042</id><published>2013-01-25T07:43:00.001-08:00</published><updated>2013-01-25T07:43:09.156-08:00</updated><title type="text">Debugger-First VM Development</title><content type="html">&lt;span style="font-family: inherit;"&gt;Virtual Machines (VMs) are a popular mechanism for language developers to implement their ideas. VM development enables a clean separation between the High-Level Language (HLL) application code and the model and services necessary to execute that code. But in my experience, many of these efforts fail to satisfy as a usable technology because they treat debugging of the application as an after thought that can be improved later.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;I believe you get a better technology if you start with the Debugger.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;Allow me to explain...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;Back in the late '80s I discovered the power of 
the truly interactive debugging in Smalltalk. It was a revelation to go 
from the command-line/printf approach to something where you could 
inspect everything, even change the values on the stack or return fake 
values just to see what happened.&amp;nbsp; With "self halt" you could leave 
markers in so they system would throw up the debugger where you were 
unsure what to do next; you could then write the code when you needed it
 based on the real context (true JIT development!). We even used this 
latter feature in production systems, allowing us to be able to diagnose
 and fix edge cases when they occurred (we could fix the code and/or 
data in place and continue).&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;You could develop inside the operating machine of your system.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;But what the Smalltalk debugger also gave me was an ability to learn and understand object-oriented programming. It was a new paradigm to me, but through the debugger I could explore and interact with the total system. It helped me understand classes, meta-classes, message sending, instances, and all the other object paraphernalia through direct interaction with the operating machine. When an error occurred, it allowed me to explore the context of failure and attempt to correct and continue the scenario - interactively.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;A powerful debugger enabled me to learn a new paradigm quickly and effectively. After I "got it", a powerful debugger enabled me to develop the system rapidly and continuously learn from others.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;This is a lesson I would wish people developing there own languages would appreciate. It is extremely frustrating to get poor or obscure error messages out of a system, especially when you cannot then explore the meaning within the context of the code. Moreover, "clever" uses of, say,&amp;nbsp; Java VMs as a short-cut to supporting your language which give meaningless Java Exceptions which need to be interpreted in the context of the language compilation into Java byte-codes is frankly the point I will stop using a technology (which also applies to compilers that spout huge warning stacks).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;If you choose to implement a VM for your language, start with thinking about the debugging experience. VMs are ideal for building rich debugging experiences as you can expose the model of the language and the VM services directly from the operating machine through an orthogonal interface to the execution model. Further, the ability to manipulate the state of the truly virtual machine makes interactive debugging far easier to implement.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;Key to a successful debugger is of course the visualization of the system state. You need to sometimes think well outside the GDB or JDWP models of debugging. What exactly does a reactive functional programming model look like in your debugger ? How are event emitters and receivers represented ? These are the elements which not only help people to learn your new language/paradigm/system but ultimately help them develop and build bigger systems.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;You also need to decide the capabilities of your debugger, and this is where it gets interesting. I have implemented a few personal research VMs taking this Debugger-First approach, and have implemented the following unusual (and IMHO valuable) capabilities:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Execution Rewind : the ability to run the VM backwards to a given point in time, seeing at each step how the data in the VM changed. Also made it that you could change the code and re-start the execution from that point forward (got this idea from Bruce Anderson - someone did this years ago)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Sequence Breakpoints : if this sequence of commands or changes to data occurs, halt&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Interaction Breakpoint : halt when this object sends any message to this object&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Return From Frame : under defined set of circumstances return these values (think interactive mock injection)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;A/B Algorithm Testing : having more than one implementation of a function and keeping separate memory spaces for effected data, so you can see which is more efficient/effective and what is touched by the algorithms&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Dynamic Loading of Byte-Code Implementation: the ability to introduce a new byte-code to the VM during its execution (e.g.: add a &lt;i&gt;subtract&lt;/i&gt; byte-code to a system that never had one)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Dynamic Load of Debug Capability: the raw VM has no debug code - it is loaded on demand at run time. It can be as small and light as a single break-point or as large as a memory monitor. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: inherit;"&gt;&amp;nbsp; Doing this in a Test-Driven manner&lt;/span&gt; has produced some interesting effects in the VMs (plural) code:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;VM without select-loop - event driven and can be loaded as&amp;nbsp; a library into other OS processes, or on embedded system driven by interrupts&lt;/li&gt;
&lt;li&gt;dynamic byte-code selection - only the code for the necessary byte-codes for the app is loaded/compiled in. You can produce very "large" function instructions (load/load/sub/load/mult) resulting in smaller app code (creates interesting challenge of compiling app code and selecting/generating smallest byte-code set). The core VM becomes very small.&lt;/li&gt;
&lt;li&gt;state-machine heavy VM implementation - very observable model, also made snapshot persistence extremely easy. Also enabled a form of distributed/multi-core-processing - although interesting not useful (yet!)&lt;/li&gt;
&lt;li&gt;replaceable memory models - easy to substitute different models of memory management&lt;/li&gt;
&lt;li&gt;VMs written in VMs - the old Squeak/Squawk trick. Haven't yet achieved the ultimate minimal set of byte-codes that can implement other byte-codes to build a self-defining VMs&lt;/li&gt;
&lt;/ul&gt;
More importantly, having a debuggable, observable VM has allowed me to understand the system/languages I am trying to implement better. Usually, in a way that stops me wasting my time on dead-end ideas, I have to admit, but that is as valuable in research as success.&lt;br /&gt;
&lt;br /&gt;
Thinking Debugger-First about your language/system is user driven, rather than technology driven. That can only make a better system, no?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;</content><link href="http://stigmergist.blogspot.com/feeds/7068580602647629042/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/01/debugger-first-vm-development.html#comment-form" rel="replies" title="1 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/7068580602647629042" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/7068580602647629042" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2013/01/debugger-first-vm-development.html" rel="alternate" title="Debugger-First VM Development" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-2831842139984539007</id><published>2012-12-14T04:31:00.002-08:00</published><updated>2012-12-14T05:10:31.581-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="morals"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Patently Outraged</title><content type="html">If you have a few moments go to the &lt;a href="https://www.google.com/?tbm=pts"&gt;Google Patents search engine&lt;/a&gt; and look for things you do every day, may have invented or at least helped originate.&lt;br /&gt;
&lt;br /&gt;
Here's a few I found that a relevant to me:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.google.co.uk/patents/US8225270"&gt;US8225270&lt;/a&gt; : Intuit gaining patent on using a computer system for managing a project using software&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Applicants: Thomas A. Frasher, Todd M. Fitch&lt;/li&gt;
&lt;li&gt;Year: 2007&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;ISSUED July 2012 &lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;By my reading of this you can't create a spreadsheet to estimate a project without their permission&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://www.google.co.uk/patents/US20070168918"&gt;US20070168918&lt;/a&gt; : Siemens trying to patent online management of software development tasks &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Applicants: Jeanne Metherall, Philip DiJoseph, Nicholas Conti, Catherine Britton&lt;/li&gt;
&lt;li&gt;Year: 2007 &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://www.google.co.uk/patents/US20110289475"&gt;US20110289475&lt;/a&gt; : SalesForce.com trying to patent online prioritisation lists&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Applicants: Felix Sukhenko, Steve Greene&lt;/li&gt;
&lt;li&gt;Year: 2011 &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://www.google.co.uk/patents/US20120240097"&gt;US20120240097&lt;/a&gt; : Ralph Saunders trying to patent providing software development services via a website&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Year: 2012&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="http://www.google.co.uk/patents/US7797708"&gt;US7797708&lt;/a&gt; : SAP trying to patent Mock Object Testing technique &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Applicants: Walter Weber, Pragnesh B. Mistry, Carsten Ziegler, Stefan Baeuerle, Rolf Schulte-Rebbelmund, Abhay A. Tiple&lt;/li&gt;
&lt;li&gt;Year: 2006 &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&amp;nbsp;What I particularly like about this last one is they explicitly cite &lt;a href="http://stalatest.googlecode.com/svn/trunk/Literatur/mockobjects.pdf"&gt;a paper from Connextra&lt;/a&gt; (a company of which I was a founder) which contains the idea ! In fact, if you search for &lt;a href="https://www.google.com/search?tbm=pts&amp;amp;hl=en&amp;amp;q=mock+objects"&gt;"mock objects"&lt;/a&gt; in the patents it is incredible how many patent applications there are on the subject. They are all registered 5-10 years after the idea started and became common practice.&lt;br /&gt;
&lt;br /&gt;
Is this really a reasonable thing to do? Why are you trying to patent these things ?&lt;br /&gt;
&lt;br /&gt;
No, really. I'd like to know. If you are one of the people in the list above (or have a 'mock object' patent application). Please leave a comment, tweet me or email me. I genuinely do not understand your motivations. And frankly it outrages me.&lt;br /&gt;
&lt;br /&gt;
Now, I should declare that I have had patents awarded (&lt;a href="http://www.google.co.uk/patents/US7761906"&gt;US7761906&lt;/a&gt; and &lt;a href="http://www.google.co.uk/patents/US7669186"&gt;US7669186&lt;/a&gt;). I've been through the process a few times. I even have registered applications from 1999 that I could follow up to challenge Google's AdWords (&lt;a href="http://www.google.co.uk/patents/US20030110210"&gt;US20030110210&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
What can I say ? At the time I believed patents were a good thing and would help protect my ideas. &lt;br /&gt;
&lt;br /&gt;
But frankly, I now think I mainly did it for vanity reasons. In my defense, they were original ideas not the plagiarism of common practices developed by a community of peers.&lt;br /&gt;
&lt;br /&gt;
I've talked about the &lt;a href="http://stigmergist.blogspot.co.uk/2012/11/software-amoral-unethical-occupation.html"&gt;morals and ethics of software developers&lt;/a&gt; before. I think this issue lies squarely within that argument. I'm not talking about whether patents themselves are moral/ethical (there are lots of people out there discussing that subject!) - what I'm talking about is whether it is moral/ethical to plagiarize a common practice and try to patent it?&lt;br /&gt;
&lt;br /&gt;
I think not. I think it is immoral and unprofessional.&lt;br /&gt;
&lt;br /&gt;
"What about '&lt;a href="http://en.wikipedia.org/wiki/Prior_art"&gt;prior art&lt;/a&gt;' ?", I hear some of you cry. Well, as far as I understand it, prior art can be used to show a patent application is not original. However, it has to be shown while the patent is being applied for, otherwise the patent can be granted. Once granted, any use of the embodiments thereafter requires the permission of the patentee.&lt;br /&gt;
&lt;br /&gt;
Think about that: the emphasis is on us (the practitioners) to monitor who's applying for patents and show if prior art disqualifies the application as unoriginal. If we don't spot it we then might be subject to the legal powers of the patentees to impose their right of ownership upon our activities. Who has the time for that ? &lt;br /&gt;
&lt;br /&gt;
And let's not get into the subtleties of what constitutes 'prior art'... just doing it and talking about it is not counted as 'prior art'.&lt;br /&gt;
&lt;br /&gt;
I know there are laws in most countries embodying a "Duty of Disclosure" - that is you have a duty to declare prior art you know about when applying for a patent. If it is found you failed to properly disclose prior art the patent can be found invalid for "inequitable conduct" - but really? Who of us has the time and money to attack a granted patent ? Isn't it just a huge waste of time and money ?&lt;br /&gt;
&lt;br /&gt;
I have an idea: don't apply for patents on common practices in the first place. Have some integrity.&lt;br /&gt;
&lt;br /&gt;
And if you're doing it for vanity reasons, write a blog.&lt;br /&gt;
&lt;br /&gt;
PS. If you find any other outrageous patents in your travels - please put links them in comments to this blog&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/2831842139984539007/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/12/patently-outraged.html#comment-form" rel="replies" title="3 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/2831842139984539007" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/2831842139984539007" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/12/patently-outraged.html" rel="alternate" title="Patently Outraged" type="text/html"/><author><name>John S Nolan</name><uri>http://www.blogger.com/profile/07436241594653259366</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-1770750105460652598</id><published>2012-12-13T07:00:00.001-08:00</published><updated>2012-12-13T07:00:35.928-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="humour"/><category scheme="http://www.blogger.com/atom/ns#" term="start-up"/><title type="text">Jack and the #Lean Talk : A Pantomime</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8_ctfOearYTLDFa0D2zBJz38OhnP8eaAAJ_YvPpmFIBgh4eJKyQOXCD4kDDTZhV2oqkIe8vZT00XE1yTHdyfY9WrlX8hnikKiPYaIEB9Q_x24Jy16RV9W6Y6pdR0z_mj5Fi0ztYtCuPI/s1600/01-Premium-red-berry-wreath-from-John-Lewis-All-rooms-PHOTO-GALLERY-Country-Homes-and-Interiors-Housetohome.co.uk.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8_ctfOearYTLDFa0D2zBJz38OhnP8eaAAJ_YvPpmFIBgh4eJKyQOXCD4kDDTZhV2oqkIe8vZT00XE1yTHdyfY9WrlX8hnikKiPYaIEB9Q_x24Jy16RV9W6Y6pdR0z_mj5Fi0ztYtCuPI/s320/01-Premium-red-berry-wreath-from-John-Lewis-All-rooms-PHOTO-GALLERY-Country-Homes-and-Interiors-Housetohome.co.uk.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...there was a poor guy with an idea who worked alone with his developer, Jack. All they had in the world was the idea and a little bit of time to develop it.&lt;br /&gt;
&lt;br /&gt;
One day the guy with the idea got frustrated with progress and sent Jack away to take the idea to market.&lt;br /&gt;
&lt;br /&gt;
On his way to find a market Jack met a man. The man was lonely and wanted to be rich and famous. He promised to help Jack get to market so long as Jack would be his friend and introduce him to all Jack's other friends. All Jack had to do was listen to the man give a talk.&amp;nbsp;Jack knew the guy with idea would be very angry if he spent his time with the man.&lt;br /&gt;
&lt;br /&gt;
"Its a very special talk", said the man. "It's a Lean Start-Up talk! - it will help you find your niche so you will make a fortune!"&lt;br /&gt;
&lt;br /&gt;
Jack thought that he and the guy with the idea could do with a niche and a fortune, so he spent time listening to the man, reading his blog and bought his book.&lt;br /&gt;
&lt;br /&gt;
As you can imagine, the guy with the idea was furious with Jack when he returned with no market and just a few ideas. He threw the book out the window and sent Jack to bed without any supper. Poor Jack! He really thought that the ideas were magic. Now he just felt silly.&lt;br /&gt;
&lt;br /&gt;
Next day he woke up and checked his social networks. On looking around he found there was a huge "Lean Start-Up In The Cloud" three day conference going on right outside his door. There were lots and lots of other start-ups going. So they were magic ideas after all!&lt;br /&gt;
&lt;br /&gt;
Without stopping to think he climbed out of his window and went straight to the conference.&lt;br /&gt;
&lt;br /&gt;
In no time at all he was sitting in the auditorium. On stage was a huge, over-valued company that had once been a start-up. They were re-writing their history to show how they were a Lean company. Suddenly there was a terrible pounding sound of a huge round of applause that hurt Jack's ears. The spotlight shone as they introduced the biggest man he'd ever seen. It was an INVESTOR!&lt;br /&gt;
&lt;br /&gt;
Jack shivered and shrank into his seat. Luckily, the investor was so important and Jack so insignificant, he didn't see Jack. BUT - he seemed to smell him!&lt;br /&gt;
&lt;br /&gt;
The investor roared in a voice as loud as thunder...&lt;br /&gt;
&lt;br /&gt;
"Fee Fi Fo Fup, I smell the blood of a new start-up!&lt;br /&gt;
Be it real or be it a pitch, I'll buy its shares to make me rich!"&lt;br /&gt;
&lt;br /&gt;
At that point Jack was terrified!&lt;br /&gt;
&lt;br /&gt;
He rushed out the back of the auditorium and bumped into a beautiful woman. She was an Start-Up Accelerator. She quickly told Jack to hide in her booth and before he could argue, she pushed him into the booth and gave him a coffee.&lt;br /&gt;
&lt;br /&gt;
Inside the booth Jack founds lot of leaflets describing how the Accelerator could help Jack find a market full of gold. He popped one into his pocket, thinking it would please the guy with the idea.&lt;br /&gt;
&lt;br /&gt;
When the session in the auditorium had ended, the beautiful woman let Jack out of the booth and gave him a business card. She told him, however, that if he wasn't careful the investor would "eat Jack for breakfast!"&lt;br /&gt;
&lt;br /&gt;
Jack thanked the beautiful woman and ran away from the conference as fast as he could.&lt;br /&gt;
&lt;br /&gt;
The guy with the idea was so excited when he saw the leaflet he kissed Jack and told him how clever and brave he was. However, when she heard about the investor he made Jack promise never to go there again.&lt;br /&gt;
&lt;br /&gt;
He promised, but somehow as the hours passed, he kept thinking about his adventure. He really had enjoyed all the danger and he kept thinking about all the investor's gold.&lt;br /&gt;
&lt;br /&gt;
"We could be rich!", he thought.&lt;br /&gt;
&lt;br /&gt;
The next day, when the guy with idea wasn't looking, he sneaked out of the office and went to the conference again.&lt;br /&gt;
&lt;br /&gt;
When he got there he started to head towards the booth. But, oh dear ! The investor could always smell little start-ups and suddenly Jack heard the roar...&lt;br /&gt;
&lt;br /&gt;
"Fee Fi Fo Fup, I smell the blood of a new start-up!&lt;br /&gt;
Be it real or be it a pitch, I'll buy its shares to make me rich!"&lt;br /&gt;
&lt;br /&gt;
Jack ran into a side room and hid in it, trembling. The investor walked around and networked for a while but did not come across Jack.&lt;br /&gt;
&lt;br /&gt;
While hiding in the side room, Jack found there was a session in progress entitled, "How To Make Money through Growing Object Oriented Software". The "Golden GOOS" technique was beautiful. At the end of the session, without stopping to think, he grabbed the book and ran from the conference.&lt;br /&gt;
&lt;br /&gt;
The guy with the idea could not be angry with Jack for long when she saw the quality of the software produced by the Golden GOOS technique. They had no market, or money, but were misguidedly happier. But that's not the end of the story...&lt;br /&gt;
&lt;br /&gt;
The next day, Jack became bored. He thought of the investor's kingdom of start-ups in the Cloud and wanted so much to be part of them.&lt;br /&gt;
&lt;br /&gt;
"Surely it wouldn't hurt to go to the conference again?", he thought. So that's what he did!&lt;br /&gt;
&lt;br /&gt;
This time he managed to stand near the investor and listen in to the conversations. He was amazed at what he saw and heard.&lt;br /&gt;
&lt;br /&gt;
The investor was listening to start-up guys harping on about their ideas with vacuous rhetoric. It seemed to go on and on, lulling the investor into a false sense of security.&lt;br /&gt;
&lt;br /&gt;
"The guy with the idea would love me to harp on like that", Jack thought to himself. So seeing his chance, &amp;nbsp;Jack started to practice on other people at the conference.&lt;br /&gt;
&lt;br /&gt;
He hadn't got very far, however, before he heard those terrible words again...&lt;br /&gt;
&lt;br /&gt;
"Fee Fi Fo Fup, I smell the blood of a new start-up!&lt;br /&gt;
Be it real or be it a pitch, I'll buy its shares to make me rich!"&lt;br /&gt;
&lt;br /&gt;
The investor had noticed him and heard his rhetoric. The investor was coming after him!&lt;br /&gt;
&lt;br /&gt;
Jack was terrified and fled the conference. He ran back across the road to the office as fast as he could, but to his horror, the investor was following him ! Closely shadowed by the beautiful Accelerator woman.&lt;br /&gt;
&lt;br /&gt;
Jack was very quick and as soon as he got to the office, got the demo running. The investor came crashing through the door demanding to see the the business plan. The guy with the idea and Jack gave it their best shot and, lo and behold, the investor wanted in as did the Accelerator. They all agreed how wonderfully they could work together and help each other out.&lt;br /&gt;
&lt;br /&gt;
Jack and the guy with the idea had all the money they needed to start the company properly. And thanks the the Golden GOOS, Jack was never bored.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, they didn't understand Lean or GOOS and never applied them properly. Nor did they ever get any real help from their investor or the Accelerator.&lt;br /&gt;
&lt;br /&gt;
It all came crashing down 6 months later.&lt;br /&gt;
&lt;br /&gt;
The End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/1770750105460652598/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/12/jack-and-lean-talk-pantomime.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/1770750105460652598" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/1770750105460652598" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/12/jack-and-lean-talk-pantomime.html" rel="alternate" title="Jack and the #Lean Talk : A Pantomime" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8_ctfOearYTLDFa0D2zBJz38OhnP8eaAAJ_YvPpmFIBgh4eJKyQOXCD4kDDTZhV2oqkIe8vZT00XE1yTHdyfY9WrlX8hnikKiPYaIEB9Q_x24Jy16RV9W6Y6pdR0z_mj5Fi0ztYtCuPI/s72-c/01-Premium-red-berry-wreath-from-John-Lewis-All-rooms-PHOTO-GALLERY-Country-Homes-and-Interiors-Housetohome.co.uk.jpg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-1435773660824564689</id><published>2012-12-10T01:13:00.000-08:00</published><updated>2012-12-10T01:13:42.888-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="start-up"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Dear Start-Up Looking For A CTO,</title><content type="html">It was nice to hear from you. Good to know you are out in the world, strutting your stuff and looking to grow. It's an exciting time isn't it ? I remember it well: the feeling of potential; trying to make an impact on the world; the frisson of having your destiny firmly in your own hands. Enjoy the ride wherever it might take you.&lt;br /&gt;
&lt;br /&gt;
You've said you want a CTO but I wonder if you know what you're looking for? You've essentially asked for "a fast programmer to churn out features in technology X" and have hung the title "CTO" on it. This is like advertising for "a good samba dancer" and expecting him to be the father of your children. Not that samba dancing skills are undesirable in a father - we've all seen &lt;a href="http://www.youtube.com/watch?v=7bP06EJniVs"&gt;"dad dancing"&lt;/a&gt; - but they're not the skills or traits that should be top of the list for a long term relationship. I can understand how they are attractive at this stage of your life - sexy, alluring, exciting, giving you exactly the tingly feeling you want right now - but have you thought about the relationship beyond the next few months? Once you get what you want and have scratched this particular itch? Then where will you be ?&lt;br /&gt;
&lt;br /&gt;
Being the CTO of a start-up is more than just writing feature code. Its about dealing with the hundreds of non-functionals that can make or break your business: choosing a technology stack that matches your business; creating an MVP that helps you find your niche and won't cost you an arm and a leg to then fill it; creating technology that means you can operate as a business; ensuring low operating costs; dealing with privacy and security; availability; source code control; back-ups; builds; testing and all those other technical issues.&lt;br /&gt;
&lt;br /&gt;
But its also about the people, process and practice: finding techies; hiring techies; firing techies; creating a repeatable process for defining changes and getting them implemented in a timely manner; ensuring your business processes are supported by the product; helping you moderate your enthusiasm to chase every feature opportunity; sorting any patents; ingraining quality; getting the tech incentives right; discouraging cowboy-ism; taking risks; not chasing trends because everyone else is; saying 'no'; making sure you can deliver on your promises and your potential. I could go on.&lt;br /&gt;
&lt;br /&gt;
None of this is covered by "a fast programmer to churn out features in technology X".&lt;br /&gt;
&lt;br /&gt;
Now, I'm not saying you're asking for the wrong person at this point in time. You're still young as an organisation and maybe having fun and being edgy and risky with a technical "samba dancer" is part of all that. But don't call the role CTO. You're undermining the term, possibly fooling yourself and maybe even risking your investor's money in order for someone to learn through making mistakes with your business.&lt;br /&gt;
&lt;br /&gt;
Enjoy your youthful fling with the "samba dancer" but do not convince yourself that the outcome is guaranteed to be a foundation for a long term, fruitful business. In fact you might try a few different hip-cool "dancers" to try ideas with the UI, platform, etc. Usually you'll get a Minimum Plausible Product (MPP) - one that shows your ideas can have value - but not one that is Viable as the basis of an operating business. Its often a simple question that tells you this: could I sell this product as it is and, &lt;u&gt;without changing it&lt;/u&gt;, operate and grow a business from it?&lt;br /&gt;
&lt;br /&gt;
When you are ready to become more established and settled that's the point to look for a CTO.&amp;nbsp; It's around the point you start looking for real investment or when you want to change your MPP into an MVP. If you do take this route, know that there will be a period of re-engineering which will pause your feature rush to get your MVP out to the market. It could be a few months. Its just the price for this journey.&lt;br /&gt;
&lt;br /&gt;
On the other hand if you really are looking for a CTO and think hiring "a fast programmer to churn out features in technology X" is a cheaper way of gaining one, might I suggest an alternative ? Rent a CTO and get them to help you hire some decent "samba dancers" (&lt;u&gt;not&lt;/u&gt; the really ace ones who claim they can do everything).&lt;br /&gt;
&lt;br /&gt;
You'll go to an investor for their experience with finance and
 advice on growing a business but you don't hire them - you sort of rent
 them as a CFO.&amp;nbsp; So why not do the same thing with a CTO? Find someone 
with the experience and capabilities to help you grow your technology 
but don't hire them - rent them.&lt;br /&gt;
&lt;br /&gt;
There are experienced people out there (like me) who are happy to consult to start-ups a few days a week to help guide a team through the tricky initial stages of setting up the technical side of a start-up in such a way that takes all those nasty non-functionals into account. If they're any good they'll even help mentor your team and possibly grow one of your "Samba dancers" into your full-time CTO. I'm not talking "coaches", consultancies or advisers here, I mean hands-on people who have been (or even currently are) CTOs of start-ups. Ask around - you'll find them.&lt;br /&gt;
&lt;br /&gt;
Of course, there is always the third alternative: invest in a CTO. This of course means knowing what you need. The list above is just a thin slice of what's on a start-up CTOs list, but I think you get the idea? It's all those things you never thought of, nor really ever want to worry about, but expect to happen with the technical side of the business. Finding the person who is capable of taking this on can be hard. You don't always need to get an experienced CTO. Even though it is less risky it can be more expensive and they come come with their own challenges. Sometimes finding a person with less experience that has the capabilities to step-up to the challenge is better. But I would suggest getting some expert help from a "rentable" CTO to interview them : it really does take one to know one in this case.&lt;br /&gt;
&lt;br /&gt;
Sorry if this sounds a bit preachy. It's just that by asking for an uber-geek and calling it CTO makes me think you don't know what you really need. It is difficult when you're growing to know what that is sometimes.&lt;br /&gt;
&lt;br /&gt;
Take time to understand where you are. Figure out what you need rather than desire. When you "dance" with the techies ask yourself "what's the attraction?" and state your expectations accordingly. &lt;br /&gt;
And only say CTO when you mean it.&lt;br /&gt;
&lt;br /&gt;
I wish you all the best and hope you succeed. Don't be a stranger. Call whenever you like.&lt;br /&gt;
&lt;br /&gt;
And call your mother. She worries.&lt;br /&gt;
&lt;br /&gt;
Your curmudgeonly uncle,&lt;br /&gt;
&lt;br /&gt;
John&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/1435773660824564689/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/12/dear-start-up-looking-for-cto.html#comment-form" rel="replies" title="6 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/1435773660824564689" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/1435773660824564689" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/12/dear-start-up-looking-for-cto.html" rel="alternate" title="Dear Start-Up Looking For A CTO," type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-4137987476548165974</id><published>2012-11-30T07:05:00.003-08:00</published><updated>2012-11-30T07:22:58.192-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="leveson"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">What Software Might Learn From Leveson</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0NfZatgOhZhTZldUI-HG3y30sdGU_BTnkNW0mIzE-pLux6UdiDUNEP6mYq2srxelN8ZQinwf28upOrFYhWZ6cy2EFFY3DFK7E2A4HHg7hx-4l62VyHf8WO1dZfDHse342_KR0FMxuWE/s1600/logo-square.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0NfZatgOhZhTZldUI-HG3y30sdGU_BTnkNW0mIzE-pLux6UdiDUNEP6mYq2srxelN8ZQinwf28upOrFYhWZ6cy2EFFY3DFK7E2A4HHg7hx-4l62VyHf8WO1dZfDHse342_KR0FMxuWE/s1600/logo-square.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://www.levesoninquiry.org.uk/"&gt;Leveson Inquiry into the Culture, Practices and Ethics of the Press&lt;/a&gt; has just concluded in the UK. Whilst it does not have anything to do with software development, I thought some of Lord Leveson's comments, and the nature of relationship between the press and public, had some bearing on software development. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In his statement, Levenson said:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
The press, operating freely and in the public interest, is one of the true safeguards of our democracy. As a result, it holds a privileged and powerful place in our society.&lt;br /&gt;
&lt;br /&gt;
But this power and influence carries with it responsibilities to the public interest in whose name it exercises these privileges. Unfortunately, as the evidence has shown beyond doubt, on too many occasions, those responsibilities (along with the Editors’ Code which the press wrote and promoted) have simply been ignored. This has damaged the public interest, caused real hardship and, also on occasion, wreaked havoc in the lives of innocent people.&lt;/blockquote&gt;
Software development has an attitude that it also operates "freely" and "the public interest", yet (as I previously &lt;a href="http://stigmergist.blogspot.co.uk/2012/11/software-amoral-unethical-occupation.html"&gt;blogged&lt;/a&gt; about) the developers don't seem to practice an ethically responsible approach to their work. Codes of Ethics written by associations or movements are often paid lip-service, if they are even considered at all. It is my belief that the same outcome, of damage to the public interest, creation of hardship and havoc in the lives of individuals not only is possible, but inevitable unless something changes.&lt;br /&gt;
&lt;br /&gt;
Leveson also commented:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
I know of no organised profession, industry or trade in which the serious failings of the few are overlooked or ignored because of the good done by the many.&lt;/blockquote&gt;
Clearly, he has few dealings with software development. Or maybe he does: the phrase "organised"&amp;nbsp; is not one which software development can be accused of, nor is it a true profession by any definition. Are we guilty of overlooking serious failings in our rose-tinted view of the "good" we do?&lt;br /&gt;
&lt;br /&gt;
This inquiry and others like it (e.g. the World Medical Association 1948 leading to the &lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;a href="http://en.wikipedia.org/wiki/Declaration_of_Geneva"&gt;Declaration of&amp;nbsp; Geneva&lt;/a&gt;) are often reactions to the public revulsion at the practices and outcomes of certain occupations - usually ones which are on the front-line of the developing society. There is always a sense of outrage at the betrayal of public interest and a cry to unearth "why something was not done about it".&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;Maybe software developers should listen and learn from this. We are operating at the fore-front of societal development in a manner which appears to be consistent with inevitable catastrophe and sanction. What can we do ?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;There are two options: precipitate a catastrophe that will bring about public outrage and leads to high-level scrutiny, or learn from other domains and try to get our house in order. The first of these is clearly difficult to achieve and possibly illegal; leaving the second to consider...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;Leveson's suggestion to manage the press issues is clear:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
What is needed therefore is a genuinely independent and effective system of self regulation of standards, with obligations to the public interest.&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
[....] &lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;The press needs to establish a new regulatory body which is truly independent of industry leaders and of Government and politicians. It must promote high standards of journalism, and protect both the public interest and the rights and liberties of individuals. It should set and enforce standards, hear individual complaints against its members and provide a fair, quick and inexpensive arbitration service to deal with civil law claims.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;The Chair and the other members of the body must be independent and appointed by a fair and open process. It must comprise a majority of members who are independent of the press. It should not include any serving editor or politician. That can be readily achieved by an appointments panel which could itself include a current editor but with a substantial majority demonstrably independent of the press and of politicians.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;He is suggesting an independent public self-regulation body which can hold members of the profession accountable. The standards code should come from the industry but be done through a process of public consultation. This is similar to other professions such as medicine and accounting.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;He also says:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;I am proposing [new legislation] only for the narrow purpose of recognising a new independent self-regulatory system. It is important to be clear what this legislation would not do; it would not establish a body to regulate the press; that is for the press itself to do.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;In fact, the law he suggests recognizes the independence of this regulatory body and essentially empowers it.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;If software development were to undertake such a move, what would it take?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;By its very definition it is not possible for this to be constituted from within the industry. Maybe this is at the very heart of why the software industry fails to create true professional bodies to which the practitioners subscribe : it cannot be done from within or in the privacy of our own conversations.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;It would seem we need to get this debate into a more public sphere - talk to the press and the politicians. Talk to our clients and neighbours. Get a more public debate going. Of course, making them care is going to be hard - usually it requires a catastrophe for this to be relevant - but maybe we can use the Leveson Inquiry as a point of leverage?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;It would seem we need to try and constitute a body of representatives from outside the industry to help us regulate our behaviour. And try to get it recognised in law as the appropriate body for complaints and concerns.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;Relatively simple, then?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;"Why bother?", I hear some of you ask.&amp;nbsp; I am concerned at the potential scale of the catastrophe we might make through software development. Not only in an instantaneous sense of a break-down of vital systems but also the creeping changes to our society the introduction of some technologies might have. Changes, which after they are established, we may look back upon with regret and yet another cry of &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;"why something was not done about it". But, more selfishly, I am concerned that the backlash against software developers when such a catastrophe occurs will be over-zealous, onerous and inappropriate - fueled by the howling of politicians and journalists who will easily forget the events that precipitated Leveson Inquiry.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="bodycopy"&gt;&lt;span class="bodycopyBlue"&gt;&lt;span class="bodycopy"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
</content><link href="http://stigmergist.blogspot.com/feeds/4137987476548165974/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/11/what-software-might-learn-from-leveson.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4137987476548165974" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4137987476548165974" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/11/what-software-might-learn-from-leveson.html" rel="alternate" title="What Software Might Learn From Leveson" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0NfZatgOhZhTZldUI-HG3y30sdGU_BTnkNW0mIzE-pLux6UdiDUNEP6mYq2srxelN8ZQinwf28upOrFYhWZ6cy2EFFY3DFK7E2A4HHg7hx-4l62VyHf8WO1dZfDHse342_KR0FMxuWE/s72-c/logo-square.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-2487792708851741820</id><published>2012-11-27T08:49:00.001-08:00</published><updated>2012-11-27T08:55:08.128-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="morals"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Software: The Amoral, Unethical Occupation</title><content type="html">As part of Harvard Law Professor Michael Sandel's course he presents a classic &lt;a href="http://en.wikipedia.org/wiki/Trolley_problem"&gt;Trolley Car problem&lt;/a&gt; during his &lt;a href="http://www.academicearth.org/lectures/morality-of-muder-and-cannibalism"&gt;Moral Side of Murder&lt;/a&gt; lecture:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnabDY1zvqpg3hulq1KIksqIVrQ-IWtYX35Zj4oL4PK8AAndzGA35uQlcnxKDMWwZYi7tZgSccOCKE8AZEIeCf814UgsEi3PqPTH_f8TaUOxqt9UqQJuCFHAABfuOPl808vuESYehsPPA/s1600/tram1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnabDY1zvqpg3hulq1KIksqIVrQ-IWtYX35Zj4oL4PK8AAndzGA35uQlcnxKDMWwZYi7tZgSccOCKE8AZEIeCf814UgsEi3PqPTH_f8TaUOxqt9UqQJuCFHAABfuOPl808vuESYehsPPA/s200/tram1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Suppose you're the driver of a trolley-car and your trolley-car is hurtling down the track at 60 miles an hour. At the end of the track you notice 5 workers working on the track. You try to stop but you can't. Your brakes don't work. You feel desperate because you know if you crash into these 5 workers they will all die. (Let's assume you know that for sure).&lt;br /&gt;
&lt;br /&gt;
And so you feel helpless until you notice there is, off to the right, a side track. And at the end of that track there is 1 worker working on the track. Your steering wheel works. So you can turn the trolley-car, if you want to, on to the side track killing the 1 but sparing the 5.&lt;br /&gt;
&lt;br /&gt;
What's the right thing to do?&lt;/blockquote&gt;
&lt;br /&gt;
This is a beautifully simple dilemma has been used for many years as a tool for discussing the difference between morals/ethics, right/wrong and the conundrums of law and living.&lt;br /&gt;
&lt;br /&gt;
There is a variation of this I use to explore the amoral and unethical habits of software development (see my &lt;a href="http://www.infoq.com/presentations/Rant-Computer-Society"&gt;"Is It Just Me Or Is Everything $#!t"&lt;/a&gt; rant at GotoCon2012 in Copenhagen) :&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLueTCd1JGjXmJ7kBVIzuTEsmMNo-0As3MeBrk7JgIFEPNoFni0nIc7mntvXqLeAmLnMIN04VHIkrqHIgM2SP_a0EIVLPMYFhat_p9qh2TKB-m8Ulsj_fPkdKpXxC-j4bH-_rIfm2U2jM/s1600/tram2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLueTCd1JGjXmJ7kBVIzuTEsmMNo-0As3MeBrk7JgIFEPNoFni0nIc7mntvXqLeAmLnMIN04VHIkrqHIgM2SP_a0EIVLPMYFhat_p9qh2TKB-m8Ulsj_fPkdKpXxC-j4bH-_rIfm2U2jM/s200/tram2.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
To protect their trolley-car drivers, the company has decided to automate the switch-track, removing the responsibility from the driver. Using the web or mobile apps, subscribers can see personal details about the workers and give them a rating. The system in real-time, based on the collective score, figures out which direction the trolley-car should go to minimize the impact of the impact.&lt;br /&gt;
&lt;br /&gt;
Suppose you are a software developer who has been asked to design and implement this system. Do you?&lt;/blockquote&gt;
&lt;br /&gt;
More than 75% of the hundred or so software developers I have asked readily admitted they would do it. &lt;br /&gt;
&lt;br /&gt;
75% &lt;br /&gt;
&lt;br /&gt;
Think about that for a moment.&lt;br /&gt;
&lt;br /&gt;
When pushed on the moral and ethical aspects of creating such as system, a number of responses were typical:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;"If I don't do it, someone else will"&lt;/li&gt;
&lt;li&gt;"It's not the creation of it which is the problem, it is the use of it"&lt;/li&gt;
&lt;li&gt;"The responsibility lies with the company for wanting it and using it. Its my responsibility to create what the company needs"&lt;/li&gt;
&lt;/ul&gt;
All of the responses from those who would implement the system can be summarized as an abdication of responsibility. The last of the responses above is tantamount to the &lt;a href="http://en.wikipedia.org/wiki/Superior_orders"&gt;Nuremberg Defense&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
This data supports my experience that there is little or no consideration taken by software developers of ethical, let alone moral issues surrounding the technology they develop. There is little or no responsibility taken for the consequences of technology by those who have the greatest power to control it.&lt;br /&gt;
&lt;br /&gt;
The trolley-car scenario may be hypothetical, but consider :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;the implementation of trading systems which allow the traders to expose the institutions to billions of risky/fake trades&lt;/li&gt;
&lt;li&gt;the implementation of strong encryption between BlackBerries (BBM) being impenetrable by police or other authorities&lt;/li&gt;
&lt;li&gt;the development of the mobile phone intruding on the lives of everyone - even if you do not own a phone ("hello, I'm on the train..."). Let alone the greater ability to track individuals&lt;/li&gt;
&lt;li&gt;the deployment of websites with poor security measures allowing the theft of personal financial data&lt;/li&gt;
&lt;/ul&gt;
Ignoring whether you think these are positive or negative things: In how many of these cases was there consideration taken by the software developers that made the technology about the moral or ethical consequences of enabling these technologies to exist.&lt;br /&gt;
&lt;br /&gt;
We create technologies of great potential value but also potentially perilous cost. We don't account for those costs - I'm not taking £/$/€ here, I mean the societal and personal costs. For example, what's the cost of having a mobile phone as opposed to fixed line ? Who questioned this and the impact on society it might have?&lt;br /&gt;
&lt;br /&gt;
For any technology we might ask, "Who would have the right/power to say 'no'?", but I ask , "Who has the right/power to say 'yes'?" - and the answer would appear to be "any fool with a computer".&lt;br /&gt;
&lt;br /&gt;
We rummage through Panadora's Toy Box like 3 year-olds, shouting "Look what I've got" and hurling technology over our shoulders into society without consideration.&lt;br /&gt;
&lt;br /&gt;
We have a duty as members of a society and software developers to ensure proper care and respect is had for the morals and ethics of the societies to which we subscribe. We cannot nor should not abdicate this responsibility, yet we do.&lt;br /&gt;
&lt;br /&gt;
I offer no solution to this problem. It is beyond my power or understanding to do so. All I would ask is that you (if you are a developer) consider the moral and ethical impacts of the technology you are working upon. Do not abdicate this or expect someone else to have thought about it. Ask, "What is the cost of this?" and "Can I be responsible for this?". Listen for yourself using the Nuremberg Defense. Listen for yourself arguing Moral Neutrality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/2487792708851741820/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/11/software-amoral-unethical-occupation.html#comment-form" rel="replies" title="15 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/2487792708851741820" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/2487792708851741820" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/11/software-amoral-unethical-occupation.html" rel="alternate" title="Software: The Amoral, Unethical Occupation" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnabDY1zvqpg3hulq1KIksqIVrQ-IWtYX35Zj4oL4PK8AAndzGA35uQlcnxKDMWwZYi7tZgSccOCKE8AZEIeCf814UgsEi3PqPTH_f8TaUOxqt9UqQJuCFHAABfuOPl808vuESYehsPPA/s72-c/tram1.png" width="72"/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-4389457467018216545</id><published>2012-01-25T05:12:00.000-08:00</published><updated>2012-01-25T05:12:40.477-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="diy"/><category scheme="http://www.blogger.com/atom/ns#" term="eigenharp"/><title type="text">Eigenharp Tau Whisky Dispenser</title><content type="html">So the Eigenharp Developer Conference was a complete blast. Three days of discussion, coding, playing and drinking. But &lt;u&gt;&lt;b&gt;the&lt;/b&gt;&lt;/u&gt; product innovation was the realization of the "Eigenharp Tau Whisky Dispenser" accessory.&lt;br /&gt;
&lt;br /&gt;
Now this innovation had been discussed on the &lt;a href="http://www.eigenlabs.com/forum/threads/id/781/?page=2"&gt;forum&lt;/a&gt; but it took a perfect storm of pieces, people and madness to achieve...all of which came together Saturday night. During our tour of the Eigenharp manufacturing area, John Lambert had handed be some elastic bands and Tygon tubing with a particularly impish gleam in his eye....&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Parts List &lt;/u&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;1 x Whisky Miniature (I'd supplied some &lt;a href="http://www.eigenlabs.com/"&gt;Eigenlabs&lt;/a&gt; branded &lt;a href="http://www.bladnoch.co.uk/"&gt;Bladnoch&lt;/a&gt; for the attendees)&lt;/li&gt;
&lt;li&gt;1 x Eigenharp Tau (WARNING: DON'T TRY THIS WITH ALPHAS)&lt;/li&gt;
&lt;li&gt;2 x Elastic bands&lt;/li&gt;
&lt;li&gt;1 x 75cm length Tygon tubing&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Instructions&lt;/u&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRVIhrb9s-0_GxApd-VLulzE57f6ZRIVsXklUo1-A-NUJqHRkn5MBDSLOIzr3F5mAWbIlqhdJoGNBYCjLQz4FS9wNLhfrZxj-azcWPOD4vQdOdQxMxMaBpsCf5nbuSf6sJnEHoVuVkbLU/s1600/Screen+Shot+2012-01-25+at+12.56.06.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRVIhrb9s-0_GxApd-VLulzE57f6ZRIVsXklUo1-A-NUJqHRkn5MBDSLOIzr3F5mAWbIlqhdJoGNBYCjLQz4FS9wNLhfrZxj-azcWPOD4vQdOdQxMxMaBpsCf5nbuSf6sJnEHoVuVkbLU/s200/Screen+Shot+2012-01-25+at+12.56.06.png" width="120" /&gt;&lt;/a&gt;&lt;/div&gt;
Slide elastic bands up Tau and attach Tygon tubing to 'spit port' on bottom of Tau. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijrhHfGcu-4wBL0Pe5BDBWNC2dyIUemIPWg_vCs-361IeDJUFKVi3o-l77y2hyz84TDfnB4y5EKIcMxkZBPNZKaqcYwSq1vVLfwC0r1UIGOzARUTjkpP_xqhRlmS58iV8MY8Fjq2wNGGA/s1600/Screen+Shot+2012-01-25+at+12.57.11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijrhHfGcu-4wBL0Pe5BDBWNC2dyIUemIPWg_vCs-361IeDJUFKVi3o-l77y2hyz84TDfnB4y5EKIcMxkZBPNZKaqcYwSq1vVLfwC0r1UIGOzARUTjkpP_xqhRlmS58iV8MY8Fjq2wNGGA/s200/Screen+Shot+2012-01-25+at+12.57.11.png" width="118" /&gt;&lt;/a&gt;&lt;/div&gt;
Slide bottle (with small amount of tissue to protect Tau!) behind the elastic bands.&lt;br /&gt;
&lt;br /&gt;
Insert Tygon tubing into top of bottle.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEtRsmOyx_k84Rohs10-PPpBIlIgHm6TZWPBkgU8-g-lRVzTmyCAoL9FiAiahpPnvOfxXcG3ZV6Q-YByvYd-nKmqHekWOvYqkigljYzJmoib4VKs1QkJyZ3LGVVJfIMF_ij_F3w832avc/s1600/Screen+Shot+2012-01-25+at+12.56.49.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEtRsmOyx_k84Rohs10-PPpBIlIgHm6TZWPBkgU8-g-lRVzTmyCAoL9FiAiahpPnvOfxXcG3ZV6Q-YByvYd-nKmqHekWOvYqkigljYzJmoib4VKs1QkJyZ3LGVVJfIMF_ij_F3w832avc/s200/Screen+Shot+2012-01-25+at+12.56.49.png" width="70" /&gt;&lt;/a&gt;&lt;/div&gt;
Position optimally - somewhere around the percussion keys seemed to work best.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFgn4qaufoIQhO_YpnZTequDnCb5Hge7uUQjYBKzVHbOAKshdiY_YjHO9QKHV52YX8Ztmy42jgRKGyJIyXDsI1UFwcEuAo-tdZJ7hLGMlFesSSHKKbHLTvcupSONdFlFkKLTpR04zKEJg/s1600/Screen+Shot+2012-01-25+at+12.57.40.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFgn4qaufoIQhO_YpnZTequDnCb5Hge7uUQjYBKzVHbOAKshdiY_YjHO9QKHV52YX8Ztmy42jgRKGyJIyXDsI1UFwcEuAo-tdZJ7hLGMlFesSSHKKbHLTvcupSONdFlFkKLTpR04zKEJg/s320/Screen+Shot+2012-01-25+at+12.57.40.png" width="142" /&gt;&lt;/a&gt;&lt;/div&gt;
Suck like mad (actually it's not too bad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip1jcTzuBaUxN_ePO0j5uKa5wWVtsbc60GYRVZfuC_BU8Hyc4fpfqRZaXlLwVRUJedsHyFSngX7WwsX0qumYrOO35XeUtvvV0tHooxWaXD1J4NOaqg4hAykrxydxU3LehewmpEpKmYRrY/s1600/Screen+Shot+2012-01-25+at+13.04.55.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip1jcTzuBaUxN_ePO0j5uKa5wWVtsbc60GYRVZfuC_BU8Hyc4fpfqRZaXlLwVRUJedsHyFSngX7WwsX0qumYrOO35XeUtvvV0tHooxWaXD1J4NOaqg4hAykrxydxU3LehewmpEpKmYRrY/s320/Screen+Shot+2012-01-25+at+13.04.55.png" width="118" /&gt;&lt;/a&gt;&lt;/div&gt;
Share with friends&lt;br /&gt;
(this is Duncan Foster - whose &lt;a href="http://www.flickr.com/photos/68123406@N00/sets/72157628998105163/"&gt;photos&lt;/a&gt; these are cut from)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of course, the discussion almost immediately turned to how to engineer it so you could play at the same time - requiring a bypass system for blowing (unless you wanted the sound of bubbling). John Lambert's enthusiasm was such that I am expecting to see an engineered design within the next few weeks - and hopefully availability as an accessory on &lt;a href="http://www.eigenlabs.com/store/category/accessories/"&gt;www.eigenlabs.com accessories&lt;/a&gt; soon thereafter.&lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/4389457467018216545/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/01/eigenharp-tau-whisky-dispenser.html#comment-form" rel="replies" title="2 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4389457467018216545" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4389457467018216545" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2012/01/eigenharp-tau-whisky-dispenser.html" rel="alternate" title="Eigenharp Tau Whisky Dispenser" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRVIhrb9s-0_GxApd-VLulzE57f6ZRIVsXklUo1-A-NUJqHRkn5MBDSLOIzr3F5mAWbIlqhdJoGNBYCjLQz4FS9wNLhfrZxj-azcWPOD4vQdOdQxMxMaBpsCf5nbuSf6sJnEHoVuVkbLU/s72-c/Screen+Shot+2012-01-25+at+12.56.06.png" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-254403244212175054</id><published>2011-07-18T04:15:00.000-07:00</published><updated>2011-07-18T04:19:06.483-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Adding Type Overloading Methods to Python</title><content type="html">Python does not have type-based method signatures. One consequence of this IMHO is that a lot of 'dirty code' is being written that would be much improved with the presence of type-signatures. Now I started to write this with a whinge about the liberal use of &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if isinstance()&lt;/span&gt; or &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if type()&lt;/span&gt; statements within Python methods/functions, poor implementation habits, lack of understanding of clean code design and testing, blah, blah, blah... But I think that's just a waste of time for me to write and you to read.&amp;nbsp; So I'm just going to cut to the chase:&lt;br /&gt;
&lt;br /&gt;
I've implemented a Metaclass that enables type-dispatch on method signatures. What's that mean? Well, here's an example:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;from typed_calls import *

class Printer:
    __metaclass__ = ClassWithTypedCalls
 
    def show(self,an_object):
        print str(an_object)
  
    @when('show',list)
    def show_list(self,a_list):
        print 'A list:'+str(a_list)
  
    @when('show',int)
    def show_int(self,an_int):
        print 'An integer:'+str(an_int)
  
if __name__=='__main__' :
    p = Printer()
    p.show('Just a String')
    p.show([1,2,3])
    p.show(67)
    p.show(p)
&lt;/pre&gt;&lt;br /&gt;
When this runs you get the following output:&lt;br /&gt;
&lt;pre&gt;Just a String
A list:&lt;type 'list'=""&gt; [1, 2, 3]
An integer:67&lt;type 'list'=""&gt;
&amp;lt;__main__.Printer object at 0x100497d90&amp;gt;
&lt;/type&gt;&lt;/type&gt;&lt;/pre&gt;&lt;br /&gt;
This syntax/mechanism allows you to override methods based on the type of the first argument. In this case there are overrides in place for list and int but everything else uses the standard method.&lt;br /&gt;
&lt;br /&gt;
Why is this useful?&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The code is clean (both in the implementer and the user)&lt;/li&gt;
&lt;li&gt;The unit testing is simple&lt;/li&gt;
&lt;li&gt;You don't have to add code to other classes (which might be out of your control)&lt;/li&gt;
&lt;li&gt;It makes writing Visitor patterns much cleaner&lt;/li&gt;
&lt;/ul&gt;An example of Visitors using this code would be:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;from typed_calls import *
from copy import copy

class A(object):pass
class B(object):pass

class NodeWithChildren(object):
    def __init__(self,*children):
        self.children=children

class CopyingVisitor():
    __metaclass__ = ClassWithTypedCalls
 
    @when('do',object)
    def make_copy(self,an_object):
        return copy(an_object)
 
    @when('do',NodeWithChildren)
    def do_children(self,a_node_with_children):
        new_node = self.make_copy(a_node_with_children)
        new_node.children = [self.do(c) for c in a_node_with_children.children]
        return new_node
 
class TreePrinter():
    __metaclass__ = ClassWithTypedCalls
  
    def __call__(self,an_object):
        self.depth=0
        self.buffer=''
        self._print(an_object)
        print self.buffer
 
    @when('_print',object)
    def default_print(self,an_object):
        self.buffer += '  '*self.depth
        self.buffer += str(an_object)
        self.buffer += '\n'
  
    @when('_print',NodeWithChildren)
    def node_print(self,a_node):
        self.default_print(a_node)
        self.depth+=1
        for c in a_node.children : self._print(c)
        self.depth-=1
  
if __name__=='__main__' :
    child3 = A()
    child4 = B()
    child1 = NodeWithChildren(child3,child4)
    child2 = A()
    top = NodeWithChildren(child1,child2)
 
    print_out = TreePrinter()
    copier = CopyingVisitor()
 
    print 'Original'
    print_out(top)
    copy_of_top = copier.do(top)
    print
    print 'Copy'
    print_out(copy_of_top)
&lt;/pre&gt;&lt;br /&gt;
There are two Visitors in here the CopyVisitor ad the TreePrinter. Note the TreePrinter is implemented as a Functor, too (using the standard Python __call__ as the initiator). I like Visitor Functors as they allow you to implement clean and simply testable approaches to execution-state-based behaviour (e.g. then indentation depth of the tree) without compromising the implementation of the data-structure being walked or having to pass long lists of parameters.&lt;br /&gt;
&lt;br /&gt;
Now you might think, "Isn't this just multi-methods?", and in a way it is except this implementation allows for inheritance - both in the argument types and in the implementers. That is to say, if you implement an override with @when and an object is a subclass it will be recognized. Secondly, the mechanism will look back up the implementation tree to find an appropriate method. Essentially the rule goes: look for a typed method the specific typeof the argument in this class, then in its parent classes, then look for a method for the next abstract type of the argument in this class and its parent classes, [repeat up the argument abstract types....]. An example is easier (and check out the tests):&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;from typed_calls import *

class A(object):pass
class B(A):pass
class C(B):pass

class BaseClass:
    __metaclass__ = ClassWithTypedCalls
 
    @when('method_call',B)
    def call_in_base(self,argument):
        return 'call_in_base'
 
class TestClass1(BaseClass):
 
    @when('method_call',A)
    def call_in_test_class_1(self,argument):
        return 'call_in_test_class_1'
 
class TestClass2(TestClass1):
 
    @when('method_call',B)
    def call_in_test_class_2(self,argument):
        return 'call_in_test_class_2'
 
test_object1 = TestClass1()
assert test_object1.method_call(A()) == 'call_in_test_class_1'
assert test_object1.method_call(B()) == 'call_in_base'
assert test_object1.method_call(C()) == 'call_in_base'

test_object2 = TestClass2()
assert test_object2.method_call(A()) == 'call_in_test_class_1'
assert test_object2.method_call(B()) == 'call_in_test_class_2'
assert test_object2.method_call(C()) == 'call_in_test_class_2'
&lt;/pre&gt;&lt;br /&gt;
Caveats:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;this only dispatches on the type of the first argument. You can pass more arguments through but they will not effect the dispatching (exercise for reader to extend...)&lt;/li&gt;
&lt;li&gt;mechanism is relatively efficient, but will not be as fast as doing a hand-written double-dispatch/Visitor pattern&lt;/li&gt;
&lt;li&gt;when debugging you will see and extra level of stack per call - can be off-putting to some&lt;/li&gt;
&lt;li&gt;all instances of a class share the same typed-methods. Cannot (currently) override on a per instance basis like you can with normal Python functions&lt;/li&gt;
&lt;/ul&gt;Now as much as I've written this and am sharing it, I would say that this is done as a 'patch' to provide a better/cleaner way for developers who cannot/do not want to write better code.&amp;nbsp; If you think you have need of this, please consider changing your code to be better by:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;implementing double-dispatch on your classes. Makes thing much easier to test and allows greater extendability to other programmers without having to change your code&lt;/li&gt;
&lt;li&gt;not using base types (int, list, dict, etc.) as primary types in your model. Wrap basic types and use trivial sub-classing. In concert with double dispatch makes your code more testable, understandable and extendable&lt;/li&gt;
&lt;/ul&gt;If you do want to use/try this download &lt;a href="https://docs.google.com/leaf?id=0B1RhGzI9bu_eZDU0YTZiNjgtOTFjMC00MDljLTg1YjUtMDA0NmFlMzQwZDcz&amp;amp;hl=en_US"&gt;typed_calls.py&lt;/a&gt; and the accompanying tests &lt;a href="https://docs.google.com/leaf?id=0B1RhGzI9bu_eOWQwMjlhZDQtZmQ5Yi00ZTVmLWFkM2EtMjNiMDZiZTQ2YjVl&amp;amp;hl=en_US"&gt;_test_typed_calls.py&lt;/a&gt;</content><link href="http://stigmergist.blogspot.com/feeds/254403244212175054/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/07/adding-type-overloading-methods-to.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/254403244212175054" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/254403244212175054" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/07/adding-type-overloading-methods-to.html" rel="alternate" title="Adding Type Overloading Methods to Python" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-3386292451482867484</id><published>2011-04-27T02:20:00.000-07:00</published><updated>2011-04-27T02:20:43.570-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="eigenharp"/><category scheme="http://www.blogger.com/atom/ns#" term="management"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Objects, eXtreme Programming, Eigenharps : How Innovation Turns To Infection</title><content type="html">Its happening to me again. That feeling. I've had it a few times during my life. It's a combination of excitement, confusion, giddiness, occasional nausea and mind-expanding joy. Of course there is a downside: long hours in dark rooms alone, staring into space and the raving. If it sounds like I'm on drugs, it's not far off&amp;nbsp; - and I'm addicted to it.&lt;br /&gt;
&lt;br /&gt;
What am I talking about ? New technologies that undermine the current thinking and enable a whole new way of doing something but are not yet fully formed and accessible. I'm not talking about those "new technologies" that marketing people push at you as "the next best thing", nor the latest tech-fashion received via Twitter, I'm talking about those ones way over before the "innovator" section of the technology adoption curve. The ones that creep up on you and lurk about on the edge of your perception until you notice them - at which point they come to possess you and the world is never the same again.&lt;br /&gt;
&lt;br /&gt;
They're relatively easy to recognize: They're quirky and weird. Often referred to as "academic" or "cool but not practical". There's usually little or no effective marketing involved. They have interesting demos or descriptions that make me go "hmmm" but I'm often left with the feeling that the demo doesn't quite get across the whole point. People using them often say, "I've learned a lot..." but have not actually achieved anything practical. The documentation and tutorials are written in some magic incantation jargon which feels like it involves the use of a pointy hat and a stick. Now many ultimately poor technologies fit these parameters - but always, always these other ones have a "something extra" that nags at the front of my brain and possesses me, and usually it starts with "But what if...".&lt;br /&gt;
&lt;br /&gt;
This has only happened to me twice in the last 25 years: Objects/Smalltalk and eXtreme Programming (XP). And its happening to me again with Eigenharps. This has caused me to reflect on the process where these weird, lurking things turn into acceptable and (dare I say) mainstream ideas.&lt;br /&gt;
&lt;br /&gt;
The current, broadly accepted model of technology adoption is known as the &lt;a href="http://en.wikipedia.org/wiki/Diffusion_of_innovations"&gt;Diffusion of Innovations&lt;/a&gt; model - popularized in the book and zeitgeist of Crossing The Chasm (always nice to see an old idea profited upon by others 40 years later). But I have always felt this model was weak on how ideas become infectious in the first place - how do the Innovators get the "bug" and how does that get translated into a palatable form for the Early Adopters?&lt;br /&gt;
&lt;br /&gt;
In practical terms, these are the practices I have seen happen that enable these ground-shaking ideas to become infectious and practical:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Small Interest Discussion Groups&lt;/b&gt; - personally, Objects had the BCS OOPS group (by extension the OT crowd) and XP had the eXtreme Tuesday Club (XTC). Small groups of similarly obsessed people who got together to talk and share thinking. Much talk involving, "What does it mean?", "How do I...", "What I've found...". Now to be clear these were not like-minded people - in fact the very variety of minds produced a synergy where the fundamental idea was converted to the more palatable, accessible and understandable form. This is highly interactive and face-to-face. Email and web supports it but the real grist is in the eye-to-eye, blow-by-blow, hands-on collaboration. Often this involves a lot of critical thinking (and criticism) of the original idea and how it is portrayed, this means that the originators need to have thick skins and....&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Let The Idea Go And Accept What Happens&lt;/b&gt; - originators need to let the idea grow-up by itself. You can't control it. You can't necessarily predict what its impact or meaning will mean to the people down the line. Not so much "build it and they will come", more "build it and let it find them". Listening to what is discussed and how its described helps you re-work the way you talk about it&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Find the Discipline for the Flexibility&lt;/b&gt; - most of these ideas contain huge amounts of flexibility which is always vaunted as a good thing, but its like a box of very sharp knives - extremely dangerous in the wrong hands. Success seems to come when people find the right discipline of practices to apply when using the flexible tools (however, in my observation, discipline is the thing most adopters struggle with)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Let Others Talk / Translators &amp;amp; Ambassadors&lt;/b&gt; - originators can often be detrimental to their own ideas. Letting a "secondary" set of people&amp;nbsp; - let's call them the aunts and uncles of the idea as opposed to the parents - do the talking seems to produce the most effective route to adoption. Aunts and uncles have enthusiasm having struggled and achieved with the technology and can talk to others like them. Originators can never reach and talk directly to all the sub-interest groups effectively, the aunts and uncles can - and usually for free!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Use It As A Teaching Tool (for Adults not Kids)&lt;/b&gt; - new ideas often are pushed as 'great/new ways of learning X' but I think a mistake often occurs in this thinking by then targeting children. What I have seen as a more effective tool is to use it to educate adults - essentially giving them access to a domain or discipline they feel excluded from currently. These technologies often get you more quickly to the 'value' than other approaches which usually require more training than learning. I saw Objects and XP draw in a number of people outside of what would be considered programmers/technologists through accessible education approaches. These people then succeed and become aunts and uncles of the idea - in fact, they are often the greatest proponents &lt;/li&gt;
&lt;/ul&gt;I experienced these five practices occuring with Objects and XP, and have talked to people in other disciplines who have observed similar early-early-adopter practices. Ultimately, the outcome of these is a more understandable, applicable version of the original idea which can then be taken up by the Diffusion process. Its sort of the 'infectious idea' petri-dish.&lt;br /&gt;
&lt;br /&gt;
So, as an open letter to the Eigenlabs guys, here's my thoughts on how this applies to the Eigenharp:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;b&gt;Small Interest Groups&lt;/b&gt; - need to start these in various places. Get Eigenharpists together regularly to just talk/jam. Can't be done by the company, needs to be a grass-root movement. This is really an action for me - need to start one in London. Anyone up for a London-based Eigenharp jam once a month?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Let The Idea Go And Accept What Happens&lt;/b&gt; - think Eigenlabs doing this well enough - maybe need to listen more to the non-musicians who are adopting your product? Opportunity is huge in that market IMHO&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Find the Discipline for the Flexibility&lt;/b&gt; - there's definitely a whole missing section of "how to..." documentation and "my way of playing...". Capability is there but its so flexible that its difficult to adopt quickly. Documenting "How to..." discipline helps with this.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Let Others Talk / Translators &amp;amp; Ambassadors&lt;/b&gt; - think this is happening with people like Geert - but need more and more out there&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Use It As A Teaching Tool (for Adults not Kids)&lt;/b&gt; - think this is missing completely. I've handed the Pico to some non-musicians and within 10 minutes got them "sounding good" without any trauma. In fact, they've all said something along the line of, "Wow! I could imagine getting one of those and learning to play" - its an inversion of the usual music learning model: sound good then learn why.&lt;/li&gt;
&lt;/ul&gt;</content><link href="http://stigmergist.blogspot.com/feeds/3386292451482867484/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/objects-extreme-programming-eigenharps.html#comment-form" rel="replies" title="4 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/3386292451482867484" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/3386292451482867484" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/objects-extreme-programming-eigenharps.html" rel="alternate" title="Objects, eXtreme Programming, Eigenharps : How Innovation Turns To Infection" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-4177705629118560906</id><published>2011-04-18T07:31:00.000-07:00</published><updated>2011-04-18T07:36:40.715-07:00</updated><title type="text">Playing the #Eigenharp Tau like a Guitar with AAS Strum GS-1</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIisk5SXEOQf0_WsNn5jo6jOXkrxj3a5eweRsu1in_Oxll-KdkKGnAZgj4B91aEvTQt4AnkLuOksJC745W2XgwypSSFwcR2BWmj60DIDQpAAfjby5Zs7bzCnz7vubsO-Ich3TBmqB_gG0/s1600/tau-playing.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIisk5SXEOQf0_WsNn5jo6jOXkrxj3a5eweRsu1in_Oxll-KdkKGnAZgj4B91aEvTQt4AnkLuOksJC745W2XgwypSSFwcR2BWmj60DIDQpAAfjby5Zs7bzCnz7vubsO-Ich3TBmqB_gG0/s1600/tau-playing.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Geert Bevin put a &lt;a href="http://www.youtube.com/watch?v=oihkibWc3E8"&gt;video on YouTube of him playing his Alpha with the Orange Tree Samples Evolution Acoustic Guitar&lt;/a&gt;. Having just received my Tau and having a copy of &lt;a href="http://www.orangetreesamples.com/evolution-acoustic-guitar-steel-strings"&gt;Applied Acoustic Systems Strum Acoustic GS-1&lt;/a&gt; I thought it was a good exercise to learn about the Tau and get an alternate playing style/sound which was more guitar-like. I also had an idea about using the Arranger to do strum/pick patterns....&lt;br /&gt;
&lt;br /&gt;
You can see from the picture on the left (that's not me, it's Dave(?) from EigenLabs playing at NAMM 2010) that the playing stance of the Tau is generally around the big keyboard on the right in the picture. The keys on the lower-left are usually set-up as percussion keys with drum sounds, but being an Eigenharp they are entirely configurable. So why not set the percussion keys up to strum/pick the instrument like it was a guitar? (a la Geert)&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Play It Like A Geertah &lt;/span&gt;&lt;br /&gt;
Strum, like some other Guitar VST/AUs, allows you to use a section of the notes (C5-C6) to control the strumming/picking action of the synthesized guitar. For example, holding down a G chord does nothing (if you turn Auto-strum off!) until you hit C5 which gives you a down-stroke. D5 gives you an up stroke. E5-C6 give you string picks of the 6 strings (well, kind of E5/F5 gives 'bass' and 'alternate bass' which is not the same as strings 1/2). Black notes give you other things like palmed strings, muffled strokes, etc. So using Strum with the Eigenharp percussion keys was a matter of configuring them to be C5-C6.&lt;br /&gt;
&lt;br /&gt;
Now there is a little Eigenharp subtlety here: You can configure the Eigenharp to split the big keyboard into sections, or keysets. I wanted to have the Tau configured so I could play chords with top 5 rows, strum/pick with the percussion keys and use the remainder of the large keyboard with a different voice. So that means using keysplit2 (for the Tau players out there) and configuring the voice for the top keyset and the percussion keys to be the same. This meant I needed to use Audio Unit 3 (AU3) as it is the only one as standard shared between a keyset and the percussion keys. Handy.&lt;br /&gt;
&lt;br /&gt;
Next I needed to configure the percussion keys to start at C5 and be in the major scale (so I'd get the white notes for control). This meant I needed to do some Belcanto (the configuration script for EigenHarps). Its not the most accessible language/tool I've ever come across and I'm a geek! But I persevered. Eventually, I ended up with the following script which configures the percussion keys:&lt;br /&gt;
&lt;blockquote style="background-color: #dfdfdf;"&gt;description&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set up percussion keys to work for AAS Strum GS-1 as strum/pick keys&lt;br /&gt;
script&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; percussion kgroup hey tonic to notec set&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; percussion kgroup hey octave to 5 set&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; percussion kgroup hey scale to major set&lt;/blockquote&gt;This can be saved into ~/Library/EigenLabs/Scripts and accessed through User Scripts in the EigenBrowser. Or alternatively, you can type the bits below 'script' into the command line of the EigenCommander. (Or if you're really adept play it via the Eigenharp itself - not figured this out yet!)&lt;br /&gt;
&lt;br /&gt;
Once run, configure AU3 to use AAS Strum via the EigenBrowser (switch Auto-strum off in the Strum UI). Select keysplit2 and assigning AU3 to the voice of keyset2. Then set the voice of the percussion keys to AU3. Then play!&lt;br /&gt;
&lt;br /&gt;
This set-up provides for up/down strum on the first two keys of the percussion section and picking on the next 6. You get a much more guitar-like stance and style to your playing (plus proper picking opportunities with your right hand) and a great selection of guitar sounds. I believe this should work with the Electric Guitar version, too.&lt;br /&gt;
&lt;br /&gt;
(NB: careful when changing scales not to do a "global" scale change or the Strum set-up on the percussion keys may not work as you think) &lt;br /&gt;
&lt;br /&gt;
So what's it like to play? Really good! You get a very natural, expressive guitar playing experience. Because you have such control with the Tau in combination with Strum it possible to not only get nice bends, slides and hammers but also you can control the effects with lateral movements of the keys. I have one set-up where I control the WahWah this way - fascinating to play!!&lt;br /&gt;
&lt;br /&gt;
One thing I wasn't sure of, but turned out just to work, was the recording of strum/picks with the built in Eigenharp scheduler. But it works beautifully. You can lay down a nice guitar strum/pick sequence to a drummer track then swap to an alternate keysplit where you can play two different parts with your now free two hands.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Making Arrangements&lt;/span&gt;&lt;br /&gt;
The other idea I had was to use on of the Tau's Arrangers to define a strumming/picking sequence. The Arrangers are step-sequencers which you configure by using the large set of keys to define a pattern - usually of drum or rhythm samples. So why not use it to fire the C5-C6 in an appropriate pattern? This way I could play chords with left hand, get a fancy custom strum/pick sound and play melody/lead with right hand in another keyset? (think &lt;i&gt;arpeggiator&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
Strum does have a built in arpeggiator which uses MIDI loops, so I could just use that. But that would mean having to create/load a MIDI loop any time I wanted to do an arpeggio. One of the main things I like about the Eigenharp is its 'liveness' and not having to go back to the computer keyboard to endlessly edit loops/sequences. No - I wanted to use the Arranger!&lt;br /&gt;
&lt;br /&gt;
But I hit a speed bump: Arranger 1 on the Tau can only use AU4, but you can't access AU4 via any of the keysets !?? This means I can't have the Arranger firing C5-C6 and a keyset playing the notes for the chord. This is surprising to me given the flexibility of everything else on the Eigenharp. I have asked a question about how to change this (I presume some clever Belcanto script might do it) but with a standard set-up it just not possible :-(&lt;br /&gt;
&lt;br /&gt;
But...&lt;br /&gt;
&lt;br /&gt;
Maybe I can send MIDI from Arranger 1 and from the keyset to Strum running outside EigenD ? I'd loose some expression but I'd get my combination of arranger and keyset.&lt;br /&gt;
&lt;br /&gt;
Hmm...not obvious. Nothing in the config seems to let me send MIDI from the Arranger....arrrrgh&lt;br /&gt;
&lt;br /&gt;
So I ask the Twitterverse for inspiration - and hey, presto!! &lt;a href="http://eigenharps.blogspot.com/"&gt;@MikeMilton&lt;/a&gt; sends me a reference to a snippet of Belcanto he got in a reply to a similar question.&lt;br /&gt;
&lt;br /&gt;
Again after some twiddling with EigenCommander I got it working. Here's the script:&lt;br /&gt;
&lt;blockquote style="background-color: #dfdfdf;"&gt;description&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set up Arranger 1 to work with AAS Strum GS-1 as strum/pick control&lt;br /&gt;
script&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; arranger 1 listen&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; clear&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; midi rig 1 recorder listen &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 15 with velocity 1 when 1 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 16 with velocity 1 when 2 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 17 with velocity 1 when 3 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 18 with velocity 1 when 4 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 19 with velocity 1 when 5 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 20 with velocity 1 when 6 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 21 with velocity 1 when 7 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; note 22 with velocity 1 when 8 play&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; all join&lt;/blockquote&gt;This sets up Arranger 1 to send out C5-C6 to the MIDI. (as before save as a User Script or use EigenCommander). Select MIDI in your keyset. Run up Strum as an application. Set MIDI to Omni (simplest approach). Swap to Arranger 1, set-up a strum/pick pattern (course 1 is down stroke, 2 up-stroke, etc in chromatic order). Swap back to keyset. Start metronome and hold a chord pattern down. Voila!&lt;br /&gt;
&lt;br /&gt;
Haven't quite got used to playing it 'live'. Still not got start/stop smooth. I've only had the Tau 2 days, though! There's definite value in the approach. I've found myself being quite funkadelic with it. Hopefully some EigenharpBelcantoMeister will help me out so I don't need to do this via MIDI.&lt;br /&gt;
&lt;br /&gt;
The combination of Guitar synth and Eigenharp is incredible. The ease of playing and expressiveness is stunning. It leaves you in that zone of playing where you listen to the instrument rather than concentrate on the mechanics. You can play manually or you can get some CAP (computer aided playing) - your choice. But one way, or another, you get to play expressively, sound great and enjoy.&lt;br /&gt;
&lt;br /&gt;
I love the Eigenharp (sigh)</content><link href="http://stigmergist.blogspot.com/feeds/4177705629118560906/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/playing-eigenharp-tau-like-guitar-with.html#comment-form" rel="replies" title="5 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4177705629118560906" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4177705629118560906" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/playing-eigenharp-tau-like-guitar-with.html" rel="alternate" title="Playing the #Eigenharp Tau like a Guitar with AAS Strum GS-1" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIisk5SXEOQf0_WsNn5jo6jOXkrxj3a5eweRsu1in_Oxll-KdkKGnAZgj4B91aEvTQt4AnkLuOksJC745W2XgwypSSFwcR2BWmj60DIDQpAAfjby5Zs7bzCnz7vubsO-Ich3TBmqB_gG0/s72-c/tau-playing.jpg" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-4247244353723031151</id><published>2011-04-08T02:49:00.000-07:00</published><updated>2011-04-08T02:58:57.154-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eigenharp"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><title type="text">#Eigenharp, My Ignorance and @david_harvey</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9Ce2SNg55QoDfw-z1_vRdQElJscCMkbx3mTPG0K5SLNhiYrFvD2mNAYD_yoliFdaO24g9aUZM9OeMExhAnAp0orLGuxsQF_tl_jldvzdNFN7mzNlBol1gm7kzw7lR5GUty4kWLtpCS3s/s1600/ipadicon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9Ce2SNg55QoDfw-z1_vRdQElJscCMkbx3mTPG0K5SLNhiYrFvD2mNAYD_yoliFdaO24g9aUZM9OeMExhAnAp0orLGuxsQF_tl_jldvzdNFN7mzNlBol1gm7kzw7lR5GUty4kWLtpCS3s/s1600/ipadicon.png" /&gt;&lt;/a&gt;&lt;/div&gt;I freely admit I am pretty ignorant when it comes to being a real musician. In fact, I was quite happy being ignorant and playing stuff by ear/instinct for the last 30 odd years. But playing my beloved &lt;a href="http://eiganlabs.com/"&gt;Eigenharp &lt;/a&gt;and writing &lt;a href="http://eignetab.net/"&gt;EigenTab&lt;/a&gt; (a helper app for mapping chords to key/scales) it has been quite an education. Nothing like having to write an application from scratch to make you question your understanding of a model!&lt;br /&gt;
&lt;br /&gt;
I enjoy discovering and understanding models through writing software. I'm not good at memorizing things but need to understand how things are constructed (bad at history, great at maths, you know the kind). Software is great for this, especially when you take a test-driven approach. So with &lt;a href="http://eignetab.net/"&gt;EigenTab&lt;/a&gt; I got so far and realized that I couldn't move forward without getting some answers to basic axiomatic and WTF kind of questions. For all the information out on the Internet, like most subjects you get to a point where the jargon over-powers your ability to understand it. Now I'm no dullard and am capable of understanding this stuff but I am not an idiot - why would I spend ages trying to decode this mass of jargon when I can ask someone who knows it? (Nolan's Rule #4: Shared Seat-Of-Pant's Rule : if you can't do it by the seat-of-your-pants, use the seat of someone else's more experienced pants).&lt;br /&gt;
&lt;br /&gt;
Enter &lt;a href="http://www.davethehat.com/dh/"&gt;Mr. David Harvey&lt;/a&gt;, stage right (well the back of &lt;a href="http://thewaterpoet.co.uk/"&gt;The Water Poet&lt;/a&gt;, really)&lt;br /&gt;
&lt;br /&gt;
I've known David a long time through our shared profession of software development, however, David is a real musician. I mean he was actually educated in it, has degrees in it, still performs, he was even CTO of &lt;a href="http://www.sibelius.com/"&gt;Sibelius&lt;/a&gt; . So if there was a seat-of-pants to consult, it was his. (And he owns an Eigenharp Tau)&lt;br /&gt;
&lt;br /&gt;
So I had, what I thought, was a simple question: In &lt;a href="http://eignetab.net/"&gt;EigenTab&lt;/a&gt; it now shows the note names on keys for the configured scale. If the note is a 'black' note do you care if it shows sharp or flat? Aren't they the same? Isn't it just musician prissiness?&lt;br /&gt;
&lt;br /&gt;
Half an hour later (that's how much time we had) I'd gotten a full low-down on scale construction, chord theory, modes and even how Jazz musicians improvise. I think about 35% stuck. But I thought it worth writing down what-I-learned-from-David:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;sharps and flats are not the same! For example F# and Gb are not the same. Now I'd come across this when overhearing muso's (mainly rock like guitarists) talking, and after thinking about it I remembered the guy who taught me basic trumpet saying something similar. Apparently, F# is lower than Gb&lt;/li&gt;
&lt;li&gt;the main reason there's a good/bad way to refer to notes in a piece of music in a given scale is because scales are &lt;i&gt;constructed&lt;/i&gt; from a pattern of rules about what to do to generates the notes in the scale. For example, a minor scale contains a minor third - that is to say it contains a note that is three notes up the stave (literally counted from the root or tonic note) and then &lt;i&gt;dropped&lt;/i&gt; back down a semi-tone (making it flat if it's black). Whereas you might see a similar 'black' note in a different scale containing an augmented second, which is constructed by going two notes up the stave and &lt;i&gt;adding&lt;/i&gt; a semitone (making it sharp if its black) (see previous point that they are not actually the same note). So scales are actually defined by a set of rules not just notes.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;this means I need to change the &lt;a href="http://eignetab.net/"&gt;EigenTab&lt;/a&gt; implementation to be correct&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;I was always a little perturbed by all that Ionian, Dorian, etc. talk. But apparently to figure out the note intervals in semi-tone terms you can do it by thinking about the white keys on a piano. It seems that if you start at C and play the white keys to the next C its an Ionian scale, and if you start at D and play to the next D its the Dorian ! In fact there is a scale starting on each key:&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;C = Ionian&lt;/li&gt;
&lt;li&gt;D =Dorian&amp;nbsp;&lt;/li&gt;
&lt;li&gt;E = Phrygian&lt;/li&gt;
&lt;li&gt;F = Lydian&lt;/li&gt;
&lt;li&gt;G = Mixolydian&lt;/li&gt;
&lt;li&gt;A = Aeolian&lt;/li&gt;
&lt;li&gt;B = Locrian&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;It's spelt loCRian not loRCian - for years I've thought it was loRCian. duh.&lt;/li&gt;
&lt;/ul&gt;Now in the 65% of stuff I didn't retain was something very interesting about Jazz improvisation where Jazz guys improvise by playing say a minor scale above a triad chord played in a different scale (??? I think that's what he said...). The really interesting point for me, though, is that with the Eigenharp (well Tau and Alpha) because you can split the keyboard and have different scales, it might be possible to make Jazz-like improvisation easier without needing to have full chromatic scales on the keys. David did say the choice of scale is dynamic depending on the chord played, but that's a solvable problem in software (id the chord, pick a 'good' scale). Of course to do this I need a Tau or Alpha and the imminent release of the open-source version of EigenD.&lt;br /&gt;
&lt;br /&gt;
There were two other outcomes of this meeting:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;I now know what it must be like for normal people to ask me a question about technology (c.f. me/music/david with them/tech/me).&lt;/li&gt;
&lt;li&gt;I need to talk to David more often about music and try to translate it into understandable, useable knowledge&lt;/li&gt;
&lt;/ul&gt;Thanks, David. Next time I'll buy the wine.</content><link href="http://stigmergist.blogspot.com/feeds/4247244353723031151/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/eigenharp-my-ignorance-and-davidharvey.html#comment-form" rel="replies" title="3 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4247244353723031151" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4247244353723031151" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/eigenharp-my-ignorance-and-davidharvey.html" rel="alternate" title="#Eigenharp, My Ignorance and @david_harvey" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9Ce2SNg55QoDfw-z1_vRdQElJscCMkbx3mTPG0K5SLNhiYrFvD2mNAYD_yoliFdaO24g9aUZM9OeMExhAnAp0orLGuxsQF_tl_jldvzdNFN7mzNlBol1gm7kzw7lR5GUty4kWLtpCS3s/s72-c/ipadicon.png" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-5760651287523670731</id><published>2011-04-03T03:30:00.000-07:00</published><updated>2011-04-03T03:34:18.022-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eigenharp"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Adventures in #Eigenharp Land</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5aPobaotjw8wVeenOQpIPt8co2DC5KIj378usGEMPo01buDb90-XSRYfQS5FE3ApQOPqgABGRLJRYcqemHmwVmRfH9OfkfTxF5DgBpCoGalc4wy6IdQq9I4b98yf0eaFnZFUi5piwaTE/s1600/eigenharp-pico.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5aPobaotjw8wVeenOQpIPt8co2DC5KIj378usGEMPo01buDb90-XSRYfQS5FE3ApQOPqgABGRLJRYcqemHmwVmRfH9OfkfTxF5DgBpCoGalc4wy6IdQq9I4b98yf0eaFnZFUi5piwaTE/s200/eigenharp-pico.jpg" width="186" /&gt;&lt;/a&gt;&lt;/div&gt;So I was given an &lt;a href="http://www.eigenlabs.com/product/pico/"&gt;Eigenharp Pico&lt;/a&gt; for my birthday (a month early - result!). It is, quite simply, the best musical instrument I've ever played. And I have played a lot - I can play 8 different types of instrument not including drums (none of them brilliantly, though).&lt;br /&gt;
&lt;br /&gt;
If you are a techy and in anyway musical YOU SHOULD BUY ONE OF THESE NOW. I'm not going to give you a list of reasons - JUST DO IT.&lt;br /&gt;
&lt;br /&gt;
For all its brilliant-ness, it is challenging to learn the Eigenharp. Unlike conventional musical instruments the Eigenharp does not have all the notes available on the keyboard - you configure which key and scale you wish to play so you end up only having those notes. This is extremely useful for improvising and general noodling - but if you are an untrained, picked-it-up-as-you-went along musician like me, trying to play written music can be very frustrating. I can't look at a set of chords or sheet music and say, "oh, of course, F# dorian" - especially those chord sequences scribbled on the back of a beer mat in  bad light at a dive during a folk-funk-punk-fusion session. Also, this key/scale configuration means there is no standard way to play "Am". The same chord shape is "Am" in C/major but "Dsus2" in E/blues.&lt;br /&gt;
&lt;br /&gt;
So being a programmer I wrote myself an application to help me with this: &lt;a href="http://eigentab.net/"&gt;EigenTab&lt;/a&gt;.&amp;nbsp; You provide a set of chords and the app tells you what your key/scale options are. It also shows you the chord shapes. It has helped me get to grips better with the Eigenharp.&lt;br /&gt;
&lt;br /&gt;
Of course, I set myself unreasonable goals in writing the app: write once, test-driven so that it will work on major platforms (including windoze, osx, linux, iOS). And no conditional code that says anything like 'if windoze...'. Also, had to work offline without a server.&lt;br /&gt;
&lt;br /&gt;
After a couple of false starts I ended up back with a most basic HTML/Javascript approach. Had to strip the UI of all graphics and 'fancy' interactions (like hover or other event behaviour). But in the end developed a 20K application that does work under all main OSes/browsers and even can be cached as an 'app' on the iPad. Have to say I'm pretty pleased with it and it makes my Eigenharping much easier.</content><link href="http://stigmergist.blogspot.com/feeds/5760651287523670731/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/adventures-in-eigenharp-land.html#comment-form" rel="replies" title="2 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/5760651287523670731" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/5760651287523670731" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2011/04/adventures-in-eigenharp-land.html" rel="alternate" title="Adventures in #Eigenharp Land" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5aPobaotjw8wVeenOQpIPt8co2DC5KIj378usGEMPo01buDb90-XSRYfQS5FE3ApQOPqgABGRLJRYcqemHmwVmRfH9OfkfTxF5DgBpCoGalc4wy6IdQq9I4b98yf0eaFnZFUi5piwaTE/s72-c/eigenharp-pico.jpg" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-9220805503990312371</id><published>2010-11-16T05:44:00.000-08:00</published><updated>2010-11-16T11:31:12.485-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="self-organisation"/><title type="text">Lessons in Managing Self-Organizing Systems: My Father, Squirrels &amp; Birds</title><content type="html">My father had a running battle with squirrels. The age old story of escalating hostilities between man and sciurine ingenuity: bird table, nut-feeder, wire, so called squirrel-proof feeders, mesh, string...you probably know the story. All to no avail. Mr.S.Nutkin was not to be deterred; birds were going hungry; my father's tactics were heading towards firearms.&lt;br /&gt;
&lt;br /&gt;
This problem was a classic self-organizing system with an issue: each element was autonomous and independent (father, squirrel, bird, table), each operated within the same environment, communication was indirect via the environment, no direct control could be exerted between the elements and the emergent results were sub-optimal for all involved.&lt;br /&gt;
&lt;br /&gt;
Amongst the things I have learned whilst studying and building self-organizing systems (and running S.O.teams) are&lt;br /&gt;
&lt;ol&gt;&lt;li&gt; often the solution to a problem like this is counter-intuitive and based on inverting an assumption or goal&lt;/li&gt;
&lt;li&gt;by trying to fix the problem you become and element in the environment yourself, and all the rules apply to you too - especially the no direct control rule&lt;/li&gt;
&lt;li&gt;the only effective way to alter a self-organizing system is to alter the environment through adding/removing elements and allowing new behaviour to emerge&lt;/li&gt;
&lt;li&gt;you cannot predict the total outcome of changing the environment and must be prepared to accept consequential behaviour&lt;/li&gt;
&lt;/ol&gt;So applying Lesson 1, I decided to address the basic problem: How to stop the squirrels eating the birds' nuts? Inverting this I came up with the simple question: How to stop the birds eating the squirrels' nuts?&lt;br /&gt;
&lt;br /&gt;
Lesson 2 told me I couldn't do anything to change the birds, the squirrels or my father directly. I could spend quite a bit of time on this but in the end it would just come down to an argument about philosophical positions. And my father probably wouldn't listen either.&lt;br /&gt;
&lt;br /&gt;
Lesson 3 told me I had to add or remove something from the environment to affect a change. There was no way to remove all the birds or all the squirrels, nor stop my father feeding the birds. So it meant I had to add an element.&lt;br /&gt;
&lt;br /&gt;
So I bought my father a squirrel feeder that the birds couldn't use. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOxTBdui5iXBPUmond0tj9Tzp_iF4yGZrp2NE2HQ7DjOcCe51A01g-TU9_yo5xaSssMj06WO6Lkxthxw9AGqlpFG6WWdrA5NqaiEqyT-_JKARip5QGWKvDPzp_pJ4tYEdw4xMIg6CPFlk/s1600/red-squirrel.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOxTBdui5iXBPUmond0tj9Tzp_iF4yGZrp2NE2HQ7DjOcCe51A01g-TU9_yo5xaSssMj06WO6Lkxthxw9AGqlpFG6WWdrA5NqaiEqyT-_JKARip5QGWKvDPzp_pJ4tYEdw4xMIg6CPFlk/s200/red-squirrel.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Within 2 days the birds and squirrels were sticking to their own feeders. The birds were happier. The squirrels were happier. My father no longer had that look of murderous intent.&lt;br /&gt;
&lt;br /&gt;
In fact, this simple act of management was so successful that some of the shy Red Squirrels from the forest behind us started frequenting the squirrel feeder (who knew it was the birds they were afraid of?) That's the upside of Lesson 4. The down side was that there are now twice as many birds and squirrels in the garden and my father is having to buy twice as much food. There is also some emergent behaviour in the pheasants hanging out under the squirrel feeder for the cast-offs which is causing the grass to be worn away. Oh, well. That's self-organizing systems for you: never done.&lt;br /&gt;
&lt;br /&gt;
So why do I offer this parable?&lt;br /&gt;
&lt;br /&gt;
The term self-organization is thrown about very freely when people talk of groups, teams, management and organization. When it comes to looking at the actions, rhetoric and advice given I feel that much of it falls into the "pop-sci" or "pop-psych" category, and often misses the point that the manager/facilitator/coach is an element of the environment and subject to the same rules. Moreover, self-organization is referred to as if it were an understood thing - which it is not by a long chalk.&lt;br /&gt;
&lt;br /&gt;
I offer this parable and 4 lessons as items from my experience. I place them in the environment. And awaiting to see if there is any emergent behaviour.</content><link href="http://stigmergist.blogspot.com/feeds/9220805503990312371/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/lessons-in-managing-self-organizing.html#comment-form" rel="replies" title="3 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/9220805503990312371" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/9220805503990312371" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/lessons-in-managing-self-organizing.html" rel="alternate" title="Lessons in Managing Self-Organizing Systems: My Father, Squirrels &amp; Birds" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOxTBdui5iXBPUmond0tj9Tzp_iF4yGZrp2NE2HQ7DjOcCe51A01g-TU9_yo5xaSssMj06WO6Lkxthxw9AGqlpFG6WWdrA5NqaiEqyT-_JKARip5QGWKvDPzp_pJ4tYEdw4xMIg6CPFlk/s72-c/red-squirrel.jpg" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-3488592731649870594</id><published>2010-11-13T11:16:00.001-08:00</published><updated>2010-11-13T11:26:32.141-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><title type="text">Contempt, not for software developers, but for all they do</title><content type="html">I have recently spent quite a lot of time reading tweets, blogs and current publications on Software Development. I feel despondent, despairing, bitter and isolated. I feel the "agile movement" has lost it's way, got diluted, compromised it's fundamentals, become a banner of convenience. I feel contempt for this movement of which I was an early practitioner, proponent, zealot. Though, for the individuals involved, I still have respect and admiration - they are bright, articulate, rounded people.&lt;br /&gt;
&lt;br /&gt;
And for all this, I felt ashamed. My arrogance, my hostility, my mourning for a passion lost to the betrayal of others.&lt;br /&gt;
&lt;br /&gt;
But these feelings were familiar. They resonated with a recent empathy. Then I remembered a passage from Seven Pillars of Wisdom (T.E.Lawrence's account of his part in the Arab Revolt during WWI). Talking of how he felt some years after having left Arabia, he wrote he had      &lt;br /&gt;
&lt;blockquote&gt;"a resultant feeling of intense loneliness in life, and a contempt, not for men, but for all they do" (ch.1,p32)&lt;/blockquote&gt;&lt;br /&gt;
This is the feeling I have. &lt;br /&gt;
&lt;br /&gt;
Other passages have congruence with how I see the current state of the 'agile movement': &lt;br /&gt;
&lt;blockquote&gt;"As time went by our need to fight for the ideal increased to an unquestioning possession, riding with spur and rein over our doubts. Willy-nilly it became a faith. We had sold ourselves into it's slavery, manacled ourselves together in it's chain-gang, bowed ourselves to serve it's holiness with all our good and ill content. The mentality of ordinary human slaves is terrible - they have lost the world - and we had surrendered, not body alone, but soul to the overmastering greed of victory. By our own act we were drained of morality, of volition, of responsibility, like dead leaves in the wind." (ch.1,p29)&lt;/blockquote&gt;&lt;br /&gt;
Others speak to how I feel about my history with agile:&lt;br /&gt;
&lt;blockquote&gt;"The moral freshness of the world-to-be intoxicated us. We were wrought up in the ideas inexpressible and vaporous, but to be fought for. We lived many lives in those whirling campaigns, never sparing ourselves: yet when we achieved and the new world dawned, the old men came out again and took our victory to remake in the likeness of the former world they knew. Youth could win, but had not learned to keep: and was pitiably weak against age. We stammered that we had worked for a new heaven and a new earth, and they thanked us kindly and made their peace." (introduction to later editions)&lt;/blockquote&gt;&lt;br /&gt;
In these words I find solace. Men far greater than I, more central to more important histories, have fallen prey to these feelings. In the pursuit of what you believe to be a better way of the world, maybe there is an inevitability in the course of human history for the vanguard to become dissolute with the world they help forge. Yet in these new worlds there is value and benefit for others - it is a better world for them. For the vanguard it was about the pursuit of the ideal, the journey. For the rest it is about the destination of being somewhere better. These two things can never sit well together.&lt;br /&gt;
&lt;br /&gt;
So where does this leave me?  &lt;br /&gt;
&lt;br /&gt;
In looking for new employment I discovered that I unwittingly undertook a similar path to Lawrence. Although I am being offer Head of Development/CTO roles, I find myself drawn to being a programmer at the bottom of the pile. I even went as far as to draft an alternative version of my CV removing my management and agile experience (but have not used it). Lawrence re-enlisted in the RAF under an assumed name, but was discovered, at which point he enlisted under another name in the RTC where he was unhappy. Maybe this is something I should take heed of?&lt;br /&gt;
&lt;br /&gt;
Further, I have come to recognize that I am a 'vanguard' kind of guy. I suppose I always have been. And in that there is an acceptance. I should feel no shame but know it is time to move on and let the followers settle. Those who make the war cannot make the peace.      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Posted using BlogPress from my iPad</content><link href="http://stigmergist.blogspot.com/feeds/3488592731649870594/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/contempt-not-for-software-developers.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/3488592731649870594" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/3488592731649870594" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/contempt-not-for-software-developers.html" rel="alternate" title="Contempt, not for software developers, but for all they do" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-8904453614304007895</id><published>2010-11-02T08:35:00.000-07:00</published><updated>2010-11-02T08:36:47.284-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business"/><title type="text">To Make Money Selling Shovels: First, Buy All The Shovels Then Create The Demand</title><content type="html">The adage "The people who make the money in a gold-rush are those who sell the shovels" cropped up again as I was perusing the blogo's fear. It is an analogy I have used myself but I have no idea if there is any truth to it, or like many urban-truths it is merely short-hand for a presumed truth? Or, if there is truth to it, what more might we learn from the fuller, less sound-bitten story?&lt;br /&gt;
&lt;br /&gt;
Thankfully, there is truth to the statement and I have not been guilty of repeating an urban-truth. Reading historical research of census data (like &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBIQFjAA&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.163.572%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=Migrating%20to%20Riches%3F%20Evidence%20from%20the%20California%20Gold%20Rush&amp;amp;ei=IR3QTOzbIZDQjAepycXBBg&amp;amp;usg=AFQjCNE1JJ7vGOiq8MVYqx1Asnqq4LNCZw&amp;amp;sig2=LgXo-AN3bqB0ogtGGfvf3Q&amp;amp;cad=rja"&gt;this difficult to read paper&lt;/a&gt;) there is statistically significant differences in the relative benefits to merchants (including shovel sellers), hotel proprietors, doctors, etc. (i.e. service providers) relative to the miners themselves. In fact, although the miners were better off in absolute terms (earning on average 3-4x what they would have elsewhere) they were worst off in relative terms because the merchants and other service providers were charging them at extortionate rates.&lt;br /&gt;
&lt;br /&gt;
What is not clear from the analogy, but is from the census data, is that on the whole it was the service providers &lt;i&gt;who were already there&lt;/i&gt; and held the distribution points and land that made the money. Many who came along later suffered a similar economic fate to the miners themselves, although they were still more assured of moderate, relative wealth than the miners. I could find no examples of anyone who had come along later with "a better shovel" who became extremely wealthy as a result. Being there first seems to be key.&lt;br /&gt;
&lt;br /&gt;
The man who became the richest guy in California at the time was &lt;a href="http://en.wikipedia.org/wiki/Samuel_Brannan"&gt;Samuel Brannan&lt;/a&gt; , who is the focus of the adage about shovels. In 1848, Brannan found out about the gold discovered at Sutter's Mill through people buying goods from his store using the gold they'd panned during their spare time (he also collect Mormon tithes in gold). Brannan was no 'poor store keeper' - he had established a couple of newspapers and had the store in Sutter's Mill and was the Mission President of the Californian Mormon Mission. Using his capital, he bought up as much prospecting equipment (including shovels) as he could in San Francisco and then, brandishing a bottle full of gold dust, ran through the streets shouting, "Gold! Gold! From the American River!". He created such a sensation that one of his papers couldn't publish the news as all the staff had left to look for gold. Brannan used his income to buy and sell land during the ensuing Gold Rush.&lt;br /&gt;
&lt;br /&gt;
So what can we learn from this story?&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Be observant and find something considered valuable being done by other people&lt;/li&gt;
&lt;li&gt;Monopolize required, necessary resources &lt;i&gt;before&lt;/i&gt; you....&lt;/li&gt;
&lt;li&gt;Generate unreasonable demand through sensational promotion of the thing and then...&lt;/li&gt;
&lt;li&gt;Charge over-the-top margins whilst you...&lt;/li&gt;
&lt;li&gt;Re-invest the profits in further monopolisation&lt;/li&gt;
&lt;/ul&gt;I feel so much better about this analogy, now.</content><link href="http://stigmergist.blogspot.com/feeds/8904453614304007895/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/to-make-money-selling-shovels-first-buy.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/8904453614304007895" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/8904453614304007895" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/to-make-money-selling-shovels-first-buy.html" rel="alternate" title="To Make Money Selling Shovels: First, Buy All The Shovels Then Create The Demand" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-5707017649127492487</id><published>2010-11-01T05:32:00.000-07:00</published><updated>2010-11-02T05:56:51.645-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="management"/><title type="text">Leadership: Listening, Understanding and Disagreeing At The Same Time</title><content type="html">Reading the contents and comments on &lt;a href="http://pauldyson.wordpress.com/2010/10/17/using-extreme-practices-to-run-your-business/#comments"&gt;Paul Dyson's recent blog about "the Whole Team" and eXtreme Business&lt;/a&gt; I was reminded of a piece of dialogue from the West Wing: Josh and Toby are walking down the street arguing, and the conversation goes something like,&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Josh: You're not listening to me&lt;/li&gt;
&lt;li&gt;Toby: I am listening&lt;/li&gt;
&lt;li&gt;Josh: But you're not understanding me&lt;/li&gt;
&lt;li&gt;Toby: I do understand&lt;/li&gt;
&lt;li&gt;Josh: But you're disagreeing with me&lt;/li&gt;
&lt;li&gt;Toby: I am doing all three: I am listening, understanding and disagreeing simultaneously&lt;/li&gt;
&lt;/ul&gt;Conversations of this form often seem to crop up in the context of running a business in an eXtreme manner and dealing with the "whole team". I think there is often a misunderstanding of the practice of "whole team" , confusing participation with democracy. If you think "whole team" means 'democracy' you're ignoring the factors of responsibility and accountability.&lt;br /&gt;
&lt;br /&gt;
Running any business or team requires both leadership and management skills. Leadership provides the vision of the direction and formulates the goals for the group, which they can then work on together (so becoming a team). Management defines the constraints (like budgets and resources, choice of technologies, etc.) and ensures that there is consistency and achievement of the agreed goals over time. Both of these require a lot of listening and understanding of what the group has to say. However, the decision about what the direction, goals and constraints for the group must be made by those responsible and accountable for the outcome of the group's efforts. This is often where the disagreeing comes in, usually because participants think their opinions (which have been solicited by good leadership practice) have been ignored rather than appreciating there are often a huge number of factors they have not taken into account that outweigh their position. To me, this is one of the big differences between a team and a group - in a team, members understand that the have been listened to and appreciated even when the decisions seem to be against their thinking, moreover, they continue with the same amount of effort and don't throw down their teddy-bear.&lt;br /&gt;
&lt;br /&gt;
My attitude towards leadership and management is strongly influenced by John Kotter's early work. Part of his position was that it is hard to find individuals who have both the leadership and management skill-sets sufficiently developed and balanced to provide that mythical "charismatic business leader" whose presence guarantees success. From my experience I think this is true - individuals are usually more one or the other - however, I think the Kotter model overlooks the practice of having a pair, or a trio, running a team or business.&lt;br /&gt;
&lt;br /&gt;
Having a true pair working together means that one can be undertaking leadership practices while the other balances with management practices - often these role swap backwards and forwards between the two on the scale of minutes, hours and days. With businesses or large groups, I think three is a better "responsible team" size - this provides the extra mediator practices sometimes required to balance the conflicts that can occur between leadership and management goals. I have worked with this model both at Connextra and e2x and found it to be a most effective model. Though I don't ever say it explicitly, I also try to influence any teams I have created or work with to form this same triumvirate structure for the responsible group. Needless to say, with three it is often the case that one is listening, one is disagreeing and the other is trying to understand how to resolve and synthesise the situation (allusions of classical thesis, anti-thesis and synthesis). However, I find it works better than other forms of organization.</content><link href="http://stigmergist.blogspot.com/feeds/5707017649127492487/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/leadership-listening-understanding-and.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/5707017649127492487" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/5707017649127492487" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/11/leadership-listening-understanding-and.html" rel="alternate" title="Leadership: Listening, Understanding and Disagreeing At The Same Time" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-4551769080498449534</id><published>2010-10-07T01:58:00.001-07:00</published><updated>2010-10-07T01:58:18.293-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Domain Specific Language Snobbery</title><content type="html">At JAOO, James Gosling gave a talk before mine on his recent experience with the Autonomous Audi TT at Stanford. Within this presentation he talked about the use of Matlab and Simulink as Domain Specific Languages (DSL) for mechanical engineers. The tone of this, and even more so talking with people afterwards, was that somehow DSLs like these are not 'real languages' and are to be sneered at for their lack of scoping or inability have closures. Even the fact that when the translated code (from Matlab to Java) was shown to the engineers and they're said it didn't make sense to them was seen as an amusing anecdote about how misguided mechanical engineers are about software, the poor dears.&lt;br /&gt;&lt;br /&gt;What unmitigated, bourgeois snobbery and arrogance. &lt;br /&gt;&lt;br /&gt;All programming languages are DSLs, you dummies. Its just a different domain - that of current models of software. You are no better with computers than these people you sneer at. There is more of their code controlling the world and making it a better place for the majority of humanity than there is for the systems delivered by so called software engineers. We should be listening to them and helping them, not sneering at them and congratulating ourselves on our superiority. Need to destroy the 1v0ry towers we're inhabiting and learn a little humility.  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;</content><link href="http://stigmergist.blogspot.com/feeds/4551769080498449534/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/10/domain-specific-language-snobbery.html#comment-form" rel="replies" title="1 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4551769080498449534" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/4551769080498449534" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/10/domain-specific-language-snobbery.html" rel="alternate" title="Domain Specific Language Snobbery" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-8613450223353649062</id><published>2010-10-07T01:33:00.001-07:00</published><updated>2010-11-01T03:57:22.168-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Here Be Algorithms</title><content type="html">I gave my "need for speed" presentation a JAOO in Denmark on Monday (4 Oct 2010). It's an overview of using "exotic hardware" like FPGAs, NFPs, SIMD processors and GPUs for accelerating applications. Must admit didn't feel I gave my best performance (sorry to attendees for that) (&lt;i style="color: blue;"&gt;Update: got my audience feedback and I got a "great presentation", top marks! Shows what a judge I am&lt;/i&gt;) - it was a bit of a formal set up with banked seating and bright lights pointing at the presenter so it was difficult to see the audience and engage them.&lt;br /&gt;
&lt;br /&gt;
Having said that, the questions and discussions afterwards did re-emphasize a belief (prejudice?) I have had for some time : algorithms are a weakness in current software developers. In fact, I told a story of using Linear Programming to solve an optimisation problem rather than using the brute force approach used by the original programmers. Of the 9 people listening, all software developers, only 2 were aware of the technique and neither of them knew how to even approach solving a problem with it. I found this shocking. Although I shouldn't be: in my experience I find software developers are unaware of many techniques to solve certain types of problem effectively and efficiently.&lt;br /&gt;
&lt;br /&gt;
I wonder whether this is a co-evolutionary outcome of computers becoming more computationally powerful and programming tools becoming more accessible and productive. It has become possible over the last 10 years to solve bigger problems brute-force within the cycle-time programmers are comfortable operating within (you know: the code/compile/debug/coffee cycle). As a consequence, it seems to me the emphasis on good algorithms has faded. Additionally, the removal of technical requirements "solved" by things like garbage collection and the misinterpretation of techniques like "do the simplest thing" seems to have lead to a place where algorithmics are "Terra incognita".&lt;br /&gt;
&lt;br /&gt;
I think their are visible signs of this when you start investigating systems with performance issues. Most commonly these days I find the problems are  due to the algorithm used not taking the computational constraints into account. I see everything from creation of unnecessary amounts of garbage to disregard for the effect of network traffic. There seems to be a belief that the system should "solve" these problems for you - and more often than not when I give this "exotic hardware" talk the hope is that these solutions will magically solve performance without the need for the developer to make any changes to their simplistic approach to algorithms. Unfortunately, this is not true, and furthermore I see no chance of current development tools being able to hide the impacts of these newer hardware architectures from the developer.&lt;br /&gt;
&lt;br /&gt;
Some of the people I talked with were students who told me that they have never had any kind of education about the practical implementation of algorithms. They have done classic computer science algorithms (bubble sort, etc) and have been taught programming languages, but they had never had to join these two things up! In fact, when asked, I could think of no reference apart from the greet 'numerical recipes' books - and they don't cover the use of higher level algorithms like Linear Programming or Map-Reduce or Data Parallelism (I.e. How to implement create a model to utilise these approaches for efficiency purposes). &lt;br /&gt;
&lt;br /&gt;
So it seems to me there is a big hole in software development currently: algorithms, using them and implementing them. I feel that we are all the poorer for it and fear it may actually be limiting us. In fact, I think that we are going to hit a technological speed-bump when shortly we need to start using hardware that incorporates on chip SIMDs and FPGAs for performance reasons. The compilers will not be able to save us. We need to go back to a more basic algorithmic approach to get the advantage, and it seems to me current software developers have lost or have never gained this skill.           &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Posted using BlogPress from my iPad</content><link href="http://stigmergist.blogspot.com/feeds/8613450223353649062/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/10/here-be-algorithms.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/8613450223353649062" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/8613450223353649062" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/10/here-be-algorithms.html" rel="alternate" title="Here Be Algorithms" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-662490089818786878</id><published>2010-08-02T03:41:00.000-07:00</published><updated>2010-08-02T03:41:41.519-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="brain"/><category scheme="http://www.blogger.com/atom/ns#" term="computing"/><category scheme="http://www.blogger.com/atom/ns#" term="technology"/><title type="text">Thoughts on John von Neumann's "The Computer and the Brain"</title><content type="html">I like to read old computer texts to get a different perspective on the technological context we find ourselves in today. Given my current obsession with how the brain works (or doesn't, rather) it struck me that I had never read &lt;a href="http://www.amazon.co.uk/Computer-Brain-Yale-Nota-Bene/dp/0300084730/"&gt;John von Neumann's "The Computer and The Brain"&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In 1955, &lt;a href="http://en.wikipedia.org/wiki/John_von_Neumann"&gt;von Neumann&lt;/a&gt; was invited by Yale university to give the Sillimann Lectures in the spring of 1956. For his theme he chose, "The Computer and the Brain", a subject he'd been interested in for a number of years. Sadly, von Neumann became too sick to give the lecture series - in fact, he never finished the manuscript before his death in February 1957. Being only 82 pages long, it took me less than an hour to read. Yet for all its brevity it was extremely thought provoking...&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;why are we emulating neurons in software when their may be a hardware equivalent? This is not a unique thought - Carver Mead did some &lt;a href="http://www.stanford.edu/group/brainsinsilicon/documents/MeadNeuroMorphElectro.pdf"&gt;work in the 1990s&lt;/a&gt; which has lead to the &lt;a href="http://www.stanford.edu/group/brainsinsilicon/index.html"&gt;Neurogrid project a Stanford&lt;/a&gt;. (Mead is the guy credited with coining the term "Moore's Law"). The Neurogrid chip emulates ion-flow across a neuron's membrane using electron-flow through a transistor (its the same physical forces after all!). Seemingly, they can emulate neurons with as few as 8 transistors. The chip therefore is populated with these hardware neurons instead of the usual logic gate configurations of a standard CPU. Seemingly, they get a hugely more efficient emulation of neuronal activity.&lt;/li&gt;
&lt;li&gt;much emphasis is put on the neuron, leaving the brain as a collection of neurons rather than considering it as a whole complex system. It is a continuously running system which has a number of physical and chemical processes being applied to the neurons. Von Neumann uses the analogy of neurons being like AND/OR gates for  nerve impulses from 'upstream' neurons (with a bit of non-linear sigmoid  functions thrown in). This is a view I've never been comfortable with,  but in my experience it is still the prevalent belief amongst  technologists.What about the effects of neurotransmitters? What about the physical effects of increased blood flow when areas of the brain are active? (surely the physical movement of neurons will effect the excitation patterns?). We seem to think of the neuron as a node which has some consistent, simple behaviour but when in reality it is a complex item in its own right and is a member of a complex system where it is behaving in a stigmergic manner. (NB: stigmergy = where individual behaviour is effected by and affects the environment, producing larger scale emergent behaviour amongst independent agents)&lt;/li&gt;
&lt;li&gt;ignoring the power issue (brain ~=20W, modern single CPU ~=80W) how close are we to emulating major neuronal activity with conventional hardware? In 1989, &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CDMQFjAD&amp;amp;url=http%3A%2F%2Fpapers.cnl.salk.edu%2FPDFs%2FThe%2520Computer%2520and%2520the%2520Brain%2520Revisited%25201989-3487.pdf&amp;amp;ei=cJNWTOCDBIXu0wTXnuT6Ag&amp;amp;usg=AFQjCNH_c2NQQCaUjQST5E8L4yiV3dzwwg&amp;amp;sig2=BkXt7RoF3sWjIYkJQ1W96A"&gt;TJ Sejnowski wrote a paper&lt;/a&gt; revisiting "The Computer and the Brain" which predicted that by 2010 we should have computer that could emulate the "minimal processing capabilities of the brain", which he put at 10&lt;sup&gt;15&lt;/sup&gt; operations per second. Let's be generous and just call these petaFlops (I know they're not floating point ops, but this is only a blog...) . Currently, the Top500 list has 6 supercomputers peaking over 1 petaFlop (in fact the first petaFlop machine was around 2006) - these of course are using 10s of thousands of cores and drawing megaWatts of power!! There is work going on with these, and there was the&lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBUQFjAA&amp;amp;url=http%3A%2F%2Fwww.modha.org%2FC2S2%2F2009%2F11182009%2Fcontent%2FSC09_TheCatIsOutofTheBag.pdf&amp;amp;ei=a55WTLH7G4P20gTwooy4Cw&amp;amp;usg=AFQjCNEyGKNyuQXgIQdpu3gdLf3HwpKCVQ&amp;amp;sig2=Tyww5dexbDIgU62lNvJCyg"&gt; controversial "big as a cat's brain" paper&lt;/a&gt; last year. But what about more realistic hardware, say something I could run on my desktop? An &lt;a href="http://www.nvidia.com/object/product_tesla_M2050_M2070_us.html"&gt;NVidia Tesla M2070&lt;/a&gt; can produce about 1 teraFlop (and its SIMD so suitable for neuronal simulation) so surely it could be used to simulate the neuronal activity of a simpler organism such as an ant (~10,000 neurons) ? (During this same investigation I came across Steve Furber's (the ARM chip guy) involvement in the &lt;a href="http://intranet.cs.man.ac.uk/apt/projects/SpiNNaker/"&gt;SpiNNaker Project&lt;/a&gt; - using arrays of ARMs to simulate neuronal activity. Looks interesting , too)&lt;/li&gt;
&lt;/ul&gt;</content><link href="http://stigmergist.blogspot.com/feeds/662490089818786878/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/08/thoughts-on-john-von-neumanns-computer.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/662490089818786878" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/662490089818786878" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/08/thoughts-on-john-von-neumanns-computer.html" rel="alternate" title="Thoughts on John von Neumann's &quot;The Computer and the Brain&quot;" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3001552519083838967.post-6813105705945522954</id><published>2010-08-01T04:01:00.000-07:00</published><updated>2010-08-01T04:01:28.566-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="land rover 101"/><title type="text">101: (Lack of) Progress Report</title><content type="html">As the engine isn't moving on the starting handle any more and working on the maxim "try everything else before stripping the engine" I began removing and checking...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn5tvWBIPv9f-XdZKTg_H6S85laowD3LxpfB90-xlpN2Pv7_MarMA8EL4DDvQ2lujFYO4ePnOvehsm6h2esH7fz7X_Y_OnPppgnPBHVHfj3KPOg59B4B3RYcaxF3nHXAjtcaUdSkfIwHM/s1600/101-me-death.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn5tvWBIPv9f-XdZKTg_H6S85laowD3LxpfB90-xlpN2Pv7_MarMA8EL4DDvQ2lujFYO4ePnOvehsm6h2esH7fz7X_Y_OnPppgnPBHVHfj3KPOg59B4B3RYcaxF3nHXAjtcaUdSkfIwHM/s320/101-me-death.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;As its likely the clutch is stuck and for some reason the gears were engaging (even though it seemed to be in neutral in both gearboxes) I decided to address the known problem of the hydraulics not working for the clutch. Stripped out the master cylinder, which amusingly requires the removal of the pedal housing which is bolted to the front panel of the 101. This made me think of just how close to death I am when driving this vehicle - is there a negative star rating for crashing testing? (see diagram)&lt;br /&gt;
&lt;br /&gt;
Anyhow...turned out the master cylinder was gunked to high-heaven, so with some penetrating oil and some &lt;i&gt;huile de coude&lt;/i&gt; it freed up. Reassembled the master cylinder and the pedal housing in to the vehicle then went to bleed the clutch system at which point I discovered I had no tubing in my workshop or house suitable. Now given the amount of stuff I keep hold of "just in case its useful" this is quite amazing. After a 40 mile round trip to my nearest motor factor (yes, 40 miles), I bled the system and got to the point where I now know that the clutch is stuck - hydraulics are working but the plate won't move. No surprise here, but the 'standard' way to free up a Land Rover clutch that's stuck is to start the vehicle in gear and bounce it until the clutch frees up. Small problem there...&lt;br /&gt;
&lt;br /&gt;
So I then decide that the starter motor may have jammed when trying to start it on the ignition. So following the instructions in the Repair Manual, I dutifully remove the panel in the right-hand front wheel arch, "to facilitate access to the area". This gives me a nice view of the exhaust manifold but no access to the starter motor! Top tip: do not bother opening panel. Removal is best done from underneath the vehicle. So after removing the starter, I tried turning it on the handle again. No joy. Sigh - starter motor back in...&lt;br /&gt;
&lt;br /&gt;
Cautionary note: if you have long hair, as I do, and are using a wheeled crawler board, ensure that your hair is fully secured in a pony tail before rolling under the vehicle and getting a bunch of stray hairs entwined in the wheel of the crawler. No amount of swearing releases you.&lt;br /&gt;
&lt;br /&gt;
As a final prevarication I decide that there is a possibility the gearbox is not going into neutral and that the "stuck" feel of the engine is from the transmission being fully engaged. So I jack up one wheel of the 101 using a high-lift jack (can't find the handle to my trolley jack) and try to turn it by hand, both in and out of gear. Sadly, it moves when in neutral but not when in gear (although its clear I'm going to have to completely strip and redo the brakes). &lt;br /&gt;
&lt;br /&gt;
Arse.&lt;br /&gt;
&lt;br /&gt;
This means that its really likely to be something in the engine and I'm going to have to strip it.</content><link href="http://stigmergist.blogspot.com/feeds/6813105705945522954/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/08/101-lack-of-progress-report.html#comment-form" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/6813105705945522954" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/3001552519083838967/posts/default/6813105705945522954" rel="self" type="application/atom+xml"/><link href="http://stigmergist.blogspot.com/2010/08/101-lack-of-progress-report.html" rel="alternate" title="101: (Lack of) Progress Report" type="text/html"/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01576847882114071302</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn5tvWBIPv9f-XdZKTg_H6S85laowD3LxpfB90-xlpN2Pv7_MarMA8EL4DDvQ2lujFYO4ePnOvehsm6h2esH7fz7X_Y_OnPppgnPBHVHfj3KPOg59B4B3RYcaxF3nHXAjtcaUdSkfIwHM/s72-c/101-me-death.jpg" width="72"/><thr:total>0</thr:total></entry></feed>