<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Hi, I’m James Arthur, aka @thruflo.  I’m a geek generalist, based in London, available for consulting work.

Email thruflo@gmail.com if you’d like to get in touch.</description><title>James Arthur's personal blog.</title><generator>Tumblr (3.0; @thruflo)</generator><link>http://thruflo.com/</link><item><title>The Silent Future</title><description>&lt;p&gt;jQuery is the de-facto library for the web, installed on 85% of websites.  There are calls for the last few major release versions to be shipped in all major browsers.  However, look what just came along.  Two way data binding in the form of &lt;a href="http://angularjs.org/"&gt;&lt;angular /&gt;&lt;/a&gt;, &lt;a href="http://www.emberjs.com/"&gt;Ember.js&lt;/a&gt; and friends.  Suddenly the very thing that jQuery is so good at, DOM manipulation, is abstracted out of the picture.&lt;/p&gt;

&lt;p&gt;The lesson, which we all know, is that change comes not from beating the incumbent at their own game but from focusing on what’s going to make their strength redundant.  The interesting thing I’ve just realised is that the Internet makes communication redundant.&lt;/p&gt;

&lt;p&gt;So far, the main impact of the Internet has been to change the way we communicate.  However, the real shift is towards &lt;strong&gt;a pervasive web where information is implicit&lt;/strong&gt;.  Just as &lt;angular /&gt; abstracts out DOM manipulation, implicit information abstracts out whole tranches of activity.  Communication, for so long the core skill of successful brands, people and organisations becomes entirely irrelevant.&lt;/p&gt;

&lt;p&gt;It may be tempting to view a future of no communication as a land of the blind where the one eyed man is king.  In a world with no marketing, surely the business that buys ads will thrive?  However, this misses the pivotal cultural shift.  As HG Wells &lt;a href="http://en.wikipedia.org/wiki/The_Country_of_the_Blind"&gt;illustrated so well&lt;/a&gt;, people’s behaviour is governed by the culture they operate in.&lt;/p&gt;

&lt;p&gt;Ours has &lt;a href="http://www.good.is/post/a-happy-flourishing-city-with-no-advertising/"&gt;already changed&lt;/a&gt;, forever.&lt;/p&gt;</description><link>http://thruflo.com/post/16629817295</link><guid>http://thruflo.com/post/16629817295</guid><pubDate>Sat, 28 Jan 2012 15:05:00 +0000</pubDate><category>disruption</category><category>communication</category><category>strategy</category></item><item><title>Getting Things Done with Google Apps and Do.com</title><description>&lt;p&gt;I was chatting with &lt;a href="http://twitter.com/h4rrydog"&gt;@h4rrydog&lt;/a&gt; a couple of days ago about the best tools to collaborate “internally”, i.e.: between ourselves and with ad hoc teams of other people.  Every man and his dog has their preferred workflow but I just setup one that’s so delightful I can’t help but share it.&lt;/p&gt;

&lt;p&gt;The setup is to use a Google Apps email address (n.b.: &lt;a href="http://www.squidoo.com/how-to-manage-multiple-gmail-accounts"&gt;#&lt;/a&gt;) with &lt;a href="http://do.com"&gt;Do.com&lt;/a&gt;.  The workflow is to use the little gadget Do.com installs into your gmail interface to turn emails into tasks.  The task title is autocompleted with the email subject.  There’s a small link to populate the task description with the email body and autocomplete widgets to assign the task to a person, a project and a due date.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://i.imm.io/f7nx.png" alt="Alt text"/&gt;&lt;/p&gt;

&lt;p&gt;It’s zen.  Try it a couple of times.  Headspace zero.&lt;/p&gt;</description><link>http://thruflo.com/post/16353208336</link><guid>http://thruflo.com/post/16353208336</guid><pubDate>Mon, 23 Jan 2012 16:49:53 +0000</pubDate><category>productivity</category></item><item><title>Released pyramid_assetgen package.</title><description>&lt;p&gt;I’ve released a Python package called &lt;a href="http://github.com/thruflo/pyramid_assetgen"&gt;pyramid_assetgen&lt;/a&gt; that helps integrate Tav’s &lt;a href="http://github.com/tav/assetgen"&gt;Assetgen&lt;/a&gt; static build tool with the &lt;a href="http://pypi.python.org/pypi/pyramid"&gt;Pyramid&lt;/a&gt; web application development framework.  As the docs say:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Using it allows you to code in languages (like CoffeeScript and SASS) that compile to JavaScript and CSS, swapping between a refresh-the-page-to-see-changes development environment and an optimal HTTP caching production setup — without ever having to change any of the code in your Pyramid application.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://thruflo.com/post/15959694757</link><guid>http://thruflo.com/post/15959694757</guid><pubDate>Mon, 16 Jan 2012 19:21:00 +0000</pubDate><category>web development</category><category>python</category><category>pyramid</category></item><item><title>The Dominatrix and the Case of the Missing Tools</title><description>&lt;p&gt;&lt;img src="http://static.thruflo.com/dominatrix.jpg" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;When I first heard about the &lt;a href="http://www.bbc.co.uk/programmes/b00t4pgh"&gt;BBC’s Sherlock&lt;/a&gt;, my heart sank.  Talk about flogging a dead horse.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Sherlock Holmes and Dr Watson’s adventures in 21st Century London. A thrilling, funny, fast-paced contemporary remake of the Arthur Conan Doyle classic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Last night, I watched it for the first time.  It was exceptionally good.  Bursting with character and rapier dialogue.  The problem was that no matter how engrossing the drama, I kept being jolted out of my suspension of disbelief by the tenuous clips dropped in to reiterate the plot.&lt;/p&gt;

&lt;p&gt;There is a scene where Sherlock cracks the code to a particularly alluring dominatrix’s safe.  The code we see him entering immediately explains how he does it (spoiler alert: it’s her vital measurements).  However, just to make sure that every viewer gets it, the dialogue has to lapse from rapier into journeyman so the dominatrix can laboriously explain this to Dr Watson.  Later on, they parachute in a remarkably artificial clip where Sherlock summarises the entire plot, for no reason whatsoever, to two henchmen driving him to the airport.&lt;/p&gt;

&lt;p&gt;I mention this because it illustrates the difference between mass media and the web.  (As with most years) it’s widely predicted that in 2012, TV and the Internet will &lt;em&gt;really&lt;/em&gt; converge.  We’ll have &lt;a href="http://www.wired.com/epicenter/2011/12/backdrop-dropbox"&gt;Dropbox logos&lt;/a&gt; on our flat screens and &lt;a href="http://zeebox.com/"&gt;our iPad alongside the remote&lt;/a&gt;.  TV that puts the user in control of what they watch and how they watch it.  The joy of which is that viewers who get the plot first time round needn’t suffer the tedium of its reiteration.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;What’s interesting is that, whilst this is the inevitable consequence of convergence, content production companies are almost entirely untooled for the future that’s rearing up in front of them.  Consider a standard production workflow.  You have footage captured to disk, an edit and a mastered file.  When delivered over IP, this file is streaming using something like rtmp://.&lt;/p&gt;

&lt;p&gt;Now, if we want to personalise the stream of content, this is perfectly doable.  Something like FMS or Wowza can serve content dynamically based on information provided.  However, as &lt;a href="http://www.wowza.com/forums/content.php?4-tutorials"&gt;the documentation&lt;/a&gt; testifies, the techniques to do this are incredibly low level.  There are no simple libraries like &lt;a href="http://popcornjs.org/"&gt;Popcorn.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For user centred content to become ubiquitous, we need some building blocks, like:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;a standard “uccp://” prototcol for responsive, user centred content streaming&lt;/li&gt;
&lt;li&gt;modules for web servers that implement the prototcol&lt;/li&gt;
&lt;li&gt;libraries for application developers&lt;/li&gt;
&lt;li&gt;plugins for content authoring software to master and publish responsive content&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I’m sure there is a lot of relevant technology out there.  However, can it be cohered around by both producers and developers in the way they can cohere around web frameworks like Drupal and Wordpress?  It looks to me that the networks and the data are there but that the tools are missing.&lt;/p&gt;</description><link>http://thruflo.com/post/15455625970</link><guid>http://thruflo.com/post/15455625970</guid><pubDate>Sat, 07 Jan 2012 16:30:00 +0000</pubDate><category>content strategy</category></item><item><title>Interesting stuff over Xmas</title><description>&lt;p&gt;Back this morning after a break in Croatia and Prague. While I deliberately left my computer at home, my information addiction was strong enough to have me peeking  regularly at my phone.&lt;/p&gt;

&lt;p&gt;The best post I read was &lt;a href="http://www.dachisgroup.com/2011/11/everything-is-a-service/"&gt;Everything is a Service&lt;/a&gt;, on the shift to a service oriented economy.  I also enjoyed this clearly written reminder on &lt;a href="http://techcrunch.com/2011/12/26/eight-ways-go-viral/"&gt;the different ways to go viral&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cory Doctorow’s keynote on &lt;a href="https://github.com/jwise/28c3-doctorow/blob/master/transcript.md"&gt;The Coming War on General Computation&lt;/a&gt;, in tandem with the whole SOPA drama, seems to have re-energised the fight for freedom on the Internet.  I don’t know about you but I did enjoy witnessing GoDaddy’s karmic reward for the appalling UX they’ve inflicted on us for all these years.&lt;/p&gt;

&lt;p&gt;Now we’re officially in the year of the Dropbox clone,  &lt;a href="http://thenextweb.com/apps/2011/12/30/forget-dropbox-insync-is-your-google-docs-loving-alternative-and-its-free/"&gt;Insync&lt;/a&gt; landed with Google Docs integration.  &lt;a href="https://github.com/bazaarlabs/gitdocs"&gt;Gitdocs&lt;/a&gt; kicked off the open source alternative beauty parade.  Sit back and enjoy.&lt;/p&gt;

&lt;p&gt;Other open source projects I liked the look of were &lt;a href="https://github.com/couchbaselabs/TouchDB-iOS"&gt;TouchDB&lt;/a&gt; and this &lt;a href="https://github.com/gf3/sandbox"&gt;Node.js JavaScript sandbox&lt;/a&gt;.  &lt;a href="http://schedulabl.es/"&gt;Schedulables&lt;/a&gt; seemed like a good idea and &lt;a href="http://quicksand.co.in"&gt;Quicksand&lt;/a&gt; looked like a company worth keeping an eye on.&lt;/p&gt;

&lt;p&gt;Beyond that I mainly got myself irrevocably confused by reading &lt;a href="http://www.ianmortimer.com/books/TTGME/writingTTGME.htm"&gt;The Time-traveller’s Guide to Medieval England&lt;/a&gt; whilst exploring Prague with a Lonely Planet guide.  Czech culture and that of fourteenth century England will now, for me, be forever hazily intertwined.&lt;/p&gt;</description><link>http://thruflo.com/post/15290538808</link><guid>http://thruflo.com/post/15290538808</guid><pubDate>Wed, 04 Jan 2012 10:37:40 +0000</pubDate><category>links</category></item><item><title>Filter by Proximity, Sort by Most Recent</title><description>&lt;p&gt;This post is about a user interface pattern, a common use case for it and an example implementation.  The pattern is adding an extra dimension to a timeline.  The use case is showing results that are both recent &lt;em&gt;and&lt;/em&gt; nearby.  The &lt;a href="https://github.com/thruflo/proximity-example"&gt;example implementation&lt;/a&gt; uses a slider widget and an adequate-result-volume algorithm.&lt;/p&gt;

&lt;p&gt;When you have 1000 messages and you want to prioritise the best 50 to display, sort is the most common pattern.  If the user is interested in the latest messages, sort by most recent.  If they want to see the messages other users found interesting, sort by a metric like views or rating.  However, the web is increasingly about real time data.  Developers are &lt;a href="https://github.com/nathanmarz/storm/wiki/Tutorial"&gt;processing streams&lt;/a&gt; and modelling &lt;a href="http://www.thoonk.com/"&gt;tubes instead of tables&lt;/a&gt;.  It rarely makes sense to display real time data in any order apart from most recent.  So, what do you do when you want to prioritise by another dimension, like proximity or rating?&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;You apply a filter.  In the case of a discrete filter like a keyword or tag, this is relatively simple.  The user types &lt;code&gt;#architecture&lt;/code&gt; into the search input and &lt;a href="https://twitter.com/search/%23architecture"&gt;Twitter obliges&lt;/a&gt;.  However, in the case of a range filter like rating or proximity it’s not quite so simple.  The user types &lt;code&gt;near:london&lt;/code&gt; and Twitter, once again &lt;a href="https://twitter.com/search/near%3Alondon"&gt;obliges&lt;/a&gt;.  The subtle difference is that, in this case, Twitter makes an assumption for the user.  It applies a default radius (aka default range).  &lt;code&gt;"Near"&lt;/code&gt; actually means &lt;code&gt;"within 15 miles"&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Compare the result volume of &lt;a href="https://twitter.com/search/near%3Alondon"&gt;near:london&lt;/a&gt; with the result volume of &lt;a href="https://twitter.com/search/near%3Aabergavenny"&gt;near:abergavenny&lt;/a&gt;.  In the first case (London) the result volume is so high, I may well prefer “near” to be more focused; perhaps meaning a radius of 5 miles.  In the second, the result volume is so low I may prefer to widen the search to yield more recent results.  Had I chosen somewhere really remote, would there have been any recent tweets at all?&lt;/p&gt;

&lt;p&gt;Guessing a default radius introduces the risk of a bad user experience, whether through noisy results or a dead end.  This can be avoided with an algorithm that prescribes the desired result volume and varies the radius or range.  Let’s walk through a concrete example, written in &lt;a href="http://python.org/"&gt;Python&lt;/a&gt; and &lt;a href="http://jashkenas.github.com/coffee-script/"&gt;CoffeeScript&lt;/a&gt; using &lt;a href="http://www.sqlalchemy.org/docs/orm/tutorial.html"&gt;SQLAlchemy&lt;/a&gt; and &lt;a href="http://www.geoalchemy.org/tutorial.html"&gt;a spatially enabled SQL database&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Before I do, let me note that this implementation was inspired by &lt;a href="http://tav.espians.com"&gt;Tav’s&lt;/a&gt; work on the original &lt;a href="http://www.theplacestation.org.uk/"&gt;Placestation&lt;/a&gt; website, where he designed, implemented and introduced me to the algorithm.  I am just the messenger.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The following gist provides example code showing how to store and query geolocated &lt;code&gt;Message&lt;/code&gt;s.  Note that the location is stored as a &lt;a href="http://postgis.refractions.net/docs/ch04.html#PostGIS_Geography"&gt;Geography Type&lt;/a&gt;.  This allows us to use a latlng projection (SRID 4326) whilst still accurately querying for results within a distance provided in metres.  (If you’re not familiar with map projections, it’s worth &lt;a href="https://docs.djangoproject.com/en/dev/ref/contrib/gis/model-api/#selecting-an-srid"&gt;getting your head around them&lt;/a&gt; before you bite off any &lt;a href="http://postgis.refractions.net/documentation/manual-1.5/ch04.html#PostGIS_GeographyVSGeometry"&gt;geolocated data modelling&lt;/a&gt;).&lt;/p&gt;

&lt;script src="https://gist.github.com/1402495.js"&gt;&lt;/script&gt;&lt;p&gt;If you have the dependencies installed (&lt;code&gt;easy_install&lt;/code&gt; &lt;code&gt;sqlalchemy&lt;/code&gt; and &lt;code&gt;geoalchemy&lt;/code&gt;) and &lt;a href="http://www.geoalchemy.org/tutorial.html"&gt;a spatially enabled SQL database&lt;/a&gt; running, you can &lt;a href="https://raw.github.com/gist/1402495/c082f1ebe9a5f42e54b5a7b28794afb5e89b4733/test_geography.py"&gt;download the script&lt;/a&gt;, edit the &lt;code&gt;DB_SETTINGS&lt;/code&gt; on &lt;a href="https://gist.github.com/1402495#L20"&gt;line 20&lt;/a&gt; and run using:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;python test_geography.py
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With that under our belt, let’s look at how we query our &lt;code&gt;Message&lt;/code&gt;s.  To work out the radius that will yield the desired result volume we can follow this pattern:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;* start with a default radius (one we just make up, e.g.: 15km)
* perform a query with that radius as a filter
* evaluate the number of results:
    - if we got too many, repeat with a tighter radius
    - else if we got too few, repeat with a wider radius
    - else we have an adequate result volume =D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This next gist abstracts out the relevant parts of the previous &lt;code&gt;test_geography.py&lt;/code&gt; script into a &lt;code&gt;LocationMixin&lt;/code&gt; class that can be mixed into any &lt;code&gt;SQLModel&lt;/code&gt; class.  The &lt;code&gt;get_distance&lt;/code&gt; class method on &lt;a href="https://gist.github.com/1451887#L113"&gt;line 113&lt;/a&gt; implements the pattern above using a left-node-right algorithm.&lt;/p&gt;

&lt;script src="https://gist.github.com/1451887.js"&gt;&lt;/script&gt;&lt;p&gt;This allows us to write query code that looks like this:&lt;/p&gt;

&lt;script src="https://gist.github.com/1452726.js"&gt;&lt;/script&gt;&lt;p&gt;With this code exposed in a request handler, all we need now is a user interface.  I’ve collated a few files into &lt;a href="https://github.com/thruflo/proximity-example"&gt;a small example app on GitHub here&lt;/a&gt;.  You can clone the repo, edit the db config as before and bootstrap and then run the example using:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;python model.py
python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you goto &lt;a href="http://localhost:8080"&gt;localhost:8080&lt;/a&gt; you should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.skitch.com/20111209-8kn183yexginknj3egx45yhmr8.png" style="width: 600px"/&gt;&lt;/p&gt;

&lt;p&gt;As the page has loaded, we’ve initialised a &lt;a href="https://github.com/thruflo/proximity-example/blob/master/client.coffee#L4"&gt;LocationBar widget&lt;/a&gt; and an &lt;a href="https://github.com/thruflo/proximity-example/blob/master/client.coffee#L60"&gt;IndexPage view&lt;/a&gt; which both share access to a &lt;a href="https://github.com/thruflo/proximity-example/blob/master/client.coffee#L109"&gt;distance object&lt;/a&gt;.&lt;/p&gt;

&lt;script src="https://gist.github.com/1452557.js"&gt;&lt;/script&gt;&lt;p&gt;When the page loads, the &lt;code&gt;IndexPage&lt;/code&gt; view makes a request to &lt;code&gt;/query&lt;/code&gt;, with the user’s current geolocation.  The &lt;a href="https://github.com/thruflo/proximity-example/blob/master/app.py#L15"&gt;request is handled&lt;/a&gt; with our query code from before.  Because no &lt;code&gt;distance&lt;/code&gt; parameter has been provided, the app uses our &lt;a href="https://github.com/thruflo/proximity-example/blob/master/model.py#L190"&gt;get_distance method&lt;/a&gt; to calculate a filter radius that will return a good volume of results.&lt;/p&gt;

&lt;p&gt;When you bootstrapped the app, you generated 500 messages with random locations.  If you now play with the location slider, you’ll see the message numbers change as your query now supplies a specific &lt;code&gt;distance&lt;/code&gt; parameter.  The more you increase the distance, the more recent messages you will get, as more messages are within the filter radius.  At lower distances, we start getting all the messages within that radius (down to no messages at all), rather than just the most recent.&lt;/p&gt;

&lt;p&gt;If you refresh the page (to get the initial result again) I hope you can see the value of the algorithm in showing you an adequate volume of results that are both recent &lt;em&gt;and&lt;/em&gt; nearby.  I’d also love to know if this post has proved useful to you or if there are bits that aren’t clear, so do post any comments below.&lt;/p&gt;</description><link>http://thruflo.com/post/13978467678</link><guid>http://thruflo.com/post/13978467678</guid><pubDate>Fri, 09 Dec 2011 20:14:00 +0000</pubDate><category>web development</category><category>python</category><category>coffeescript</category></item><item><title>Togethr as Earthquake Smoothing System</title><description>&lt;p&gt;&lt;a href="http://togethr.at"&gt;Togethr&lt;/a&gt; is an app platform and social marketplace with aspirations to become a social economy.  Why, you might ask, do we need a new social economy?  Because to treat an illness you go to the cause.&lt;/p&gt;

&lt;p&gt;Ever since Keynes, governments have borrowed money to stimulate growth in order to protect jobs.  The cause of the economic crisis is not debt but instead the need for job security.  Job changes are like earthquakes, they can shatter a life.  If job losses were not so shattering, we would not need to borrow to ensure they don’t happen.  (Nor would we need to be so nervous about the day of reckoning when the credit runs out).&lt;/p&gt;

&lt;p&gt;We smooth quakes by inducing small shifts.  When vocational shifts are on the scale of project or task there is no need for &lt;em&gt;job&lt;/em&gt; security.  Togethr provides a means to earn a crust without having to have a job, a contract or, for that matter, permission.  Social security without the tax burden or disincentive to work.&lt;/p&gt;</description><link>http://thruflo.com/post/11770527705</link><guid>http://thruflo.com/post/11770527705</guid><pubDate>Sat, 22 Oct 2011 13:53:00 +0100</pubDate><category>togethr</category></item><item><title>From WikiHouse to #Manyfacturing</title><description>&lt;p&gt;I’ve been part of the team behind &lt;a href="http://www.wikihouse.cc"&gt;WikiHouse&lt;/a&gt;.  It’s a fascinating project that points to a future where the Internet disrupts manufacturing.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.wikihouse.cc"&gt;&lt;img src="http://media.tumblr.com/tumblr_lrbafz4Flj1qbuf8b.png" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.wikihouse.cc"&gt;WikiHouse&lt;/a&gt; is an open source construction set.  A standard for designing houses that can be made using CNC milling technology.  On one level you can download, print and assemble ready-designed houses.  On the other you can tweak, share and combine componentised designs.&lt;/p&gt;

&lt;p&gt;Micro-processing technology moved computing from the university to the pocket.  CNC milling and 3D printing are digital fabrication technologies moving manufacturing from the factory to the garage.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Internet_of_Things"&gt;
    &lt;img style="background-color: white" alt="" src="http://media.tumblr.com/tumblr_lrbayctiqd1qbuf8b.png"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As access to the hardware opens up, the number of people experimenting will increase.  We’ve seen in software that, with the right infrastructure, open source will rapidly outstrip proprietary design.  Architecture and product design is currently done in silos, without the serendipity of the pull request.&lt;/p&gt;

&lt;p&gt;Those sectors will inevitably be disrupted.  As &lt;a href="http://www.guardian.co.uk/artanddesign/2011/sep/06/korea-design-biennial-gwangju"&gt;The Guardian said&lt;/a&gt; about &lt;a href="http://www.wikihouse.cc"&gt;WikiHouse&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Such open platforms, using the creative commons, are one of the major forces that will change our conception of design in the near future.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’re interested in getting involved, &lt;a href="http://www.architecture00.net/"&gt;00:/&lt;/a&gt; are organising a series of &lt;a href="http://www.wikihouse.cc/community"&gt;community events&lt;/a&gt;.&lt;/p&gt;</description><link>http://thruflo.com/post/10442291777</link><guid>http://thruflo.com/post/10442291777</guid><pubDate>Tue, 20 Sep 2011 15:30:00 +0100</pubDate><category>manyfacturing</category><category>wikihouse</category><category>00</category><category>design</category></item><item><title>View from the Hub Westminster</title><description>&lt;p&gt;Absolutely knocked for six at the view from the &lt;a href="http://hubwestminster.net"&gt;Hub Westminster&lt;/a&gt; boardroom.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://static.thruflo.com/hub%20westminster/IMAG0545.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_lrkn8aTN2X1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;&lt;a href="http://static.thruflo.com/hub%20westminster/IMAG0546.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_lrkn8tHXTI1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://static.thruflo.com/hub%20westminster/IMAG0547.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_lrkn9vEqSc1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://thruflo.com/post/10241524277</link><guid>http://thruflo.com/post/10241524277</guid><pubDate>Thu, 15 Sep 2011 17:04:00 +0100</pubDate><category>hub westminster</category><category>00:/</category></item><item><title>Talk about the Format</title><description>&lt;p&gt;A few weeks ago, I hosted &lt;a href="http://sheffdocfest.com/events/view/1965"&gt;a lunch&lt;/a&gt; at the &lt;a href="http://sheffdocfest.com"&gt;Sheffield Doc Fest&lt;/a&gt;.  It was billed as being about how documentary makers can make effective use of the web.  The vast majority of documentary makers were asking the wrong question:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;how can I use the web to fund and distribute my documentary?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let’s pretend for a moment that the web for documentary makers is YouTube.  YouTube provides publishing, not distribution.  You can get your content up and out there but you &lt;a href="http://www.youtube.com/watch?v=CLuj0gMG9B4"&gt;don’t&lt;/a&gt; get a ready made audience for it.&lt;/p&gt;

&lt;p&gt;For distribution (an audience) on the web, you need &lt;a href="/post/7115413149/pull-strategy"&gt;pull&lt;/a&gt;.  You need to be a content publisher that people seek out, subscribe to, share and respond to.  As Seth Godin has been saying for a long time, it’s about &lt;a href="http://www.ted.com/talks/seth_godin_on_the_tribes_we_lead.html"&gt;tribes&lt;/a&gt;, about leading a movement.&lt;/p&gt;

&lt;p&gt;The opportunity the web affords documentary makers is to build pull through the format.  As we seen everywhere from the &lt;a href="http://www.barcaforum.com/showthread.php/7416-FCB-players-thank-fans-at-Camp-Nou"&gt;Camp Nou&lt;/a&gt; to the X-Factor, fans love to feel that they’ve co-created the narrative.  The activity and sense of co-creation breeds advocates.&lt;/p&gt;

&lt;p&gt;Providing opportunities for profound co-creation, be it through trans-media, non-linear or interactive documentary making, builds pull.  Documentary makers and digital thinkers need to talk together about the format, not how to distribute it.&lt;/p&gt;</description><link>http://thruflo.com/post/7488021523</link><guid>http://thruflo.com/post/7488021523</guid><pubDate>Mon, 11 Jul 2011 09:57:59 +0100</pubDate><category>web</category><category>content</category><category>documentary</category><category>interactive</category><category>sheffdocfest</category></item><item><title>Safety in Numbers</title><description>&lt;p&gt;Yes, the media need the book thrown at them (and, &lt;a href="http://www.huffingtonpost.co.uk/2011/07/06/watch-hugh-grant-on-phone_n_891034.html"&gt;as HUGE says&lt;/a&gt; it’s not just one tabloid but all of them).  But how on earth were the voicemails accessed in the first place?&lt;/p&gt;

&lt;p&gt;&lt;iframe style="margin: 0.5em 0em" width="512" height="308" src="http://www.youtube.com/embed/OoJHP-zQAuA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;The phone companies &lt;a href="http://www.bbc.co.uk/news/magazine-14044499"&gt;left the back door open&lt;/a&gt;, effectively issuing everyone with a default password of 1234.  If I did that as a web developer, I’d be hung out to dry.  There’s no question that it was calculated incompetence: the sales team &lt;a href="http://www.youtube.com/watch?v=wvsboPUjrGc"&gt;shouted down&lt;/a&gt; the head of security.&lt;/p&gt;

&lt;p&gt;If we learn one thing from phone hacking it’s that it’s no use being &lt;a href="http://www.theregister.co.uk/2007/01/06/bofh_1/"&gt;a dumb user&lt;/a&gt;: you can’t rely on the invisible hand to keep your data safe.  It’s too busy &lt;a href="http://www.orange.com/en_EN/group/global_footprint/countries/uk/uk-fi.jsp"&gt;making money&lt;/a&gt;.&lt;/p&gt;</description><link>http://thruflo.com/post/7337411760</link><guid>http://thruflo.com/post/7337411760</guid><pubDate>Thu, 07 Jul 2011 10:22:10 +0100</pubDate><category>security</category><category>phone hacking</category></item><item><title>It's called a Pull Strategy</title><description>&lt;p&gt;What should leaders think about?  What’s the strategic conversation that cuts to the heart of the matter?&lt;/p&gt;

&lt;p&gt;If you look at &lt;a href="/post/6971464134/web-strategy-authority"&gt;my last post&lt;/a&gt;, it’s all about web strategy and content strategy.  We know that the web has disrupted and continues to disrupt everything, so it’s clear that organisations need a strategic approach to it.  However, one of the fascinating things to learn from &lt;a href="http://www.lucidplot.com"&gt;Jonathan Kahn&lt;/a&gt; was how he uses content strategy as a trojan horse: a conversation starter leading to something more fundamental.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://londoncreativelabs.com"&gt;&lt;img src="http://thruflo.largeblue.net/lcl.png" alt="London Creative Labs"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yesterday was my first board meeting as a Trustee of &lt;a href="http://londoncreativelabs.com/"&gt;London Creative Labs&lt;/a&gt;.  The two founders, &lt;a href="https://twitter.com/#!/evangineer"&gt;Mamading&lt;/a&gt; and &lt;a href="https://twitter.com/#!/olasofia"&gt;Sophia&lt;/a&gt; are setting out on a journey to demonstrate and refine how jobs can be created through local enterprise: skills camps to build confidence and capacity, labs to stimulate social enterprise startups and incubation to help those startups grow.&lt;/p&gt;

&lt;p&gt;The conversation, largely steered by &lt;a href="https://twitter.com/#!/gl0ria"&gt;Gloria Charles&lt;/a&gt;, ranged across topics, including outreach and communication.  Part of the challenge is to engage people on the ground and part is to show the world there is a better way to create work.  To deliver on the second part, Mamading and Sophia need to develop &lt;strong&gt;pull&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;
  &lt;a href="http://www.amazon.com/Power-Pull-Smartly-Things-Motion/dp/0465019358"&gt;&lt;img src="http://thruflo.largeblue.net/pull.jpg" style="margin: auto"/&gt;&lt;/a&gt;    
&lt;/p&gt;

&lt;p&gt;They need to build a profile and following to benefit from the acceleration and serendipity provided by people, organisations, clients and funders seeking them out and - here’s the real point - &lt;em&gt;so does everybody else&lt;/em&gt;.  London Creative Labs is a great illustration of a general truth.&lt;/p&gt;

&lt;p&gt;Web, content, communication and even business strategy are secondary to pull strategy.  The web is a channel to build pull.  Content is a means of building pull.  You communicate to build pull.  Business is a matter of pull.&lt;/p&gt;

&lt;p&gt;Discussing pull &lt;em&gt;is&lt;/em&gt; the most fundamental strategic conversation.&lt;/p&gt;</description><link>http://thruflo.com/post/7115413149</link><guid>http://thruflo.com/post/7115413149</guid><pubDate>Fri, 01 Jul 2011 10:37:00 +0100</pubDate><category>strategy</category><category>pull</category><category>London Creative Labs</category></item><item><title>What Kind of Authority Does Web Strategy Need?</title><description>&lt;p&gt;I was fortunate to meet &lt;a href="http://lucidplot.com/"&gt;Jonathan Kahn&lt;/a&gt; last week.  The first time I came across his agency &lt;a href="http://togetherlondon.com"&gt;Together London&lt;/a&gt;, I was electrified by &lt;a href="https://skitch.com/thruflo/fg397/screen-shot-2011-06-27-at-11.14.23"&gt;the copy&lt;/a&gt;.  Finally!  Someone articulating what I had been trying to say:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It’s not 1999 any more. The web is the primary channel. Get a web strategy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One of Kahn’s insights is that getting the web right requires &lt;a href="http://confab2011.com/blog/permalink/content_strategy_is_the_moment_you_realize_you_need_to_do_more_thinking"&gt;a shift in focus&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A typical web or communications initiative happens at 20,000 feet (areas of focus), but the problems we’re talking about are at 30,000 or 40,000 feet (goals, vision). We need to gain some height.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This reminded me of &lt;a href="/post/997940379#comment-70785432"&gt;Lucy Kimbell’s definition of service design&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;User-centred design asks how can we design a better toaster. Designing for service explores what meaning and what value toast-making has.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What we’re seeing in both content / web strategy and service design is the need to go to the heart of the matter.  To ask what we are trying to achieve, rather than just how to achieve it.  As Khan points out, this puts you in management space:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;You know the project is unlikely to achieve its objectives because of problems with strategy, governance, execution, or measurement. But that higher-level stuff is outside your official scope. What can you do about it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One answer he pointed me towards, by Lisa Welchman, is to &lt;a href="http://www.welchmanpierpoint.com/blog/web-strategy-definition"&gt;define web strategy at the very top of an organisation&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Formalization of Authority is the emplacement of high-level authority for Web Governance and Web Execution … In order to have power, it is an action that is best performed from a very senior level of the organization.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now, I need to delve a little more into governance but this immediately rings alarm bells.  The lessons from service design show that top-down authority will not deliver value.  Web strategy needs to enshrine freedom from command and control.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;h3&gt;Objectives, meet Demand&lt;/h3&gt;

&lt;p&gt;Trying to impose a centralised authority on service delivery fails.  This is shown clearly by John Seddon in his book &lt;a href="http://www.amazon.co.uk/Systems-Thinking-Public-Sector-Regime/dp/0955008182"&gt;Systems Thinking in the Public Sector: The Failure of the Reform Regime…. and a Manifesto for a Better Way&lt;/a&gt; and has been experienced by anyone who has ever called their bank or local council and spoken to a perfectly friendly but entirely powerless call centre operator.&lt;/p&gt;

&lt;p&gt;Let’s draw a parallel here with information architecture.  A top-down, centralised web strategy is analogous to a site architecture that’s made up and then imposed on a website, whether the users want it or not.  A far more effective approach to information architecture (and to web strategy and service design) is to study user demand and empower front-line services to provide what people actually want.  To allow call centre operators to actually try to help customers, rather than just follow a script.&lt;/p&gt;

&lt;p&gt;Seddon’s ideas stem from the application of the &lt;a href="http://www.amazon.com/Toyota-Production-System-Beyond-Large-Scale/dp/0915299143"&gt;Toyota Production System&lt;/a&gt; to service design.  In the Toyota Production System, processes closer to the end product “pull value” from earlier processes.  For example, the final production line that assembles a car will request a part when they need it, rather than receive them when produced.&lt;/p&gt;

&lt;p&gt;In the application of these ideas to service design in Seddon’s work, we see front-line services closer to the user “pulling value” from back office functions that are further away.  In his model, back office functions like management and administration exist to serve the front-office functions like call centre operatives.  If we apply the thinking to web strategy, what do we see?  Web designers, perhaps even &lt;em&gt;web pages&lt;/em&gt; serving users.  A flexible service, driven by user demand.  Not a service that is imposed by a central authority.&lt;/p&gt;

&lt;h3&gt;21st Century Business&lt;/h3&gt;

&lt;p&gt;The terminology of “pulling value” mirrors the &lt;a href="http://www.amazon.com/Power-Pull-Smartly-Things-Motion/dp/0465019358"&gt;shift in business thinking from push to pull&lt;/a&gt;.  Perhaps these are slightly different “pulls”.  However, I think it’s interesting to note that if you swap both the management (command and control to systems thinking) and communication (push to pull) paradigms on their heads, you go along way towards arriving at &lt;a href="http://www.amazon.com/New-Capitalist-Manifesto-Building-Disruptively/dp/1422158586"&gt;21st Century business&lt;/a&gt;.&lt;/p&gt;</description><link>http://thruflo.com/post/6971464134</link><guid>http://thruflo.com/post/6971464134</guid><pubDate>Mon, 27 Jun 2011 12:42:00 +0100</pubDate><category>web strategy</category><category>content strategy</category><category>service design</category><category>governance</category></item><item><title>Upgrading Browser Support from Yahoo to Google</title><description>&lt;p&gt;At &lt;a href="http://www.largeblue.com"&gt;Large Blue&lt;/a&gt;, we often deferred the question of which browsers a website should support to Yahoo’s list of &lt;a href="http://developer.yahoo.com/yui/articles/gbs/"&gt;A-Grade Browsers&lt;/a&gt;.  Now though, it’s time to switch to mirror &lt;a href="http://gmailblog.blogspot.com/2011/06/our-plans-to-support-modern-browsers.html"&gt;Google’s strategy&lt;/a&gt; of supporting the two most recent versions of every browser.&lt;/p&gt;

&lt;p&gt;Deferring to Yahoo’s list of &lt;a href="http://developer.yahoo.com/yui/articles/gbs/"&gt;A-Grade Browsers&lt;/a&gt; made a lot of sense.  It delegated the research to Yahoo and came with a stamp of authority.  I can’t remember a single client querying the decision (once they knew what it meant).&lt;/p&gt;

&lt;p&gt;However, it’s now time to move on.  In today’s cross-platform web and mobile world, the number of browsers is ballooning.  As &lt;a href="http://jquerymobile.com/gbs/"&gt;jQuery Mobile’s docs&lt;/a&gt; put it:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In mobile development there are more engines, on more platforms, and with more active versions of the browsers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(As &lt;a href="http://tav.espians.com"&gt;Tav&lt;/a&gt; pointed out to me when discussing browser support for the &lt;a href="http://togethr.at"&gt;Togethr&lt;/a&gt; platform), &lt;a href="http://gmailblog.blogspot.com/2011/06/our-plans-to-support-modern-browsers.html"&gt;Google’s strategy&lt;/a&gt; is to track fewer versions:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Beginning August 1st [2011], we’ll support the current and prior major release of Chrome, Firefox, Internet Explorer and Safari on a rolling basis. Each time a new version is released, we’ll begin supporting the update and stop supporting the third-oldest version.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For web developers, mirroring Google has all of the advantages of deferring to Yahoo and a significant advantage.  You’re still validated by and deferring to a respected external authority.  In addition, you’re also supporting fewer browser &lt;em&gt;versions&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This allows you to support more &lt;em&gt;browsers&lt;/em&gt;, which reflects the diversification of platforms across web and mobile.&lt;/p&gt;</description><link>http://thruflo.com/post/6751601810</link><guid>http://thruflo.com/post/6751601810</guid><pubDate>Tue, 21 Jun 2011 10:26:55 +0100</pubDate><category>web</category><category>development</category><category>platforms</category></item><item><title>Customer's Point of View</title><description>&lt;p&gt;&lt;img src="http://thruflo.largeblue.net/orlando-taxi1.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Whenever I order a minicab, I have to sneak in the final question:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“How much is it going to cost?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whenever I order food to pick up, I have to say:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Oops, sorry, how long is that going to take?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In both these situations, it’s understandable that the minicab company and restaurant don’t want to volunteer the information.  If the minicab company has to confirm the cost in advance, that limits the opportunity for the driver to ask for more.  If the restaurant has to confirm the time, they have to make sure the food is ready by then.&lt;/p&gt;

&lt;p&gt;I’ve learned, as a pretty basic life skill, to catch the conversation before its over and insist on asking the question.  Yet I still slightly dread it and it costs me a little bit of emotional energy.  I’m sure there are other, perhaps less confident, people who find it much harder, or just don’t ask.&lt;/p&gt;

&lt;p&gt;They just book their food from the friendly restaurant who always repeat the order and confirm the cost without having to be asked.&lt;/p&gt;</description><link>http://thruflo.com/post/5665958762</link><guid>http://thruflo.com/post/5665958762</guid><pubDate>Fri, 20 May 2011 14:00:00 +0100</pubDate></item><item><title>How to Write a Proposal</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lhov61s8xG1qbuf8b.jpg" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;If you trade on your ideas, you need to know how to write a good proposal.&lt;/p&gt;

&lt;p&gt;It’s not easy.  Every situation is different.  There’s no golden structure or template.  Seven headings to rule them all.&lt;/p&gt;

&lt;p&gt;There is, however, a method.  It’s based on &lt;a href="/post/1058182569/how-made-by-many-work"&gt;visual thinking&lt;/a&gt; and the &lt;a href="http://www.amazon.com/Pyramid-Principle-Logic-Writing-Thinking/dp/0273710516"&gt;Pyramid Principle&lt;/a&gt;.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;To write a good proposal, use post-it notes and bullet points to construct a logical argument:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;focus on what you want to say&lt;/li&gt;
&lt;li&gt;follow the pyramid principle&lt;/li&gt;
&lt;li&gt;build your pyramid with post-its&lt;/li&gt;
&lt;li&gt;transcribe into bullet points&lt;/li&gt;
&lt;li&gt;write up into minimal prose&lt;/li&gt;
&lt;li&gt;typeset your document once&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Focus on what you want to say&lt;/h2&gt;

&lt;p&gt;Start by writing an introduction that covers the situation, complication, question and answer.  When you’re writing a proposal, this pretty much writes itself.  Your client (the target of the proposal) has objectives.  You’re writing to explain how to achieve them.&lt;/p&gt;

&lt;p&gt;The situation is a uncontroversial statement of their context and objectives:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;You’re a high street music retailer.  Your sales have dropped.  You want to recapture your market share.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The complication is an equally simple, uncontroversial statement of facts.  This time, facts that make it hard to deliver the objectives:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The online music marketplace is dominated by iTunes.  Your management team have all just left.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The question is then:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So, what do we recommend?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or, in this case more explicitly:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So, how can you recapture your market share?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your proposal must then focus exclusively on the answer to this question.&lt;/p&gt;

&lt;h2&gt;Follow the pyramid principle&lt;/h2&gt;

&lt;p&gt;Following the &lt;a href="http://www.amazon.com/Pyramid-Principle-Logic-Writing-Thinking/dp/0273710516"&gt;Pyramid Principle&lt;/a&gt; means making your answer logical.  A logical answer is a rigorous logical argument.  Explicitly, it must be:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;a valid argument&lt;/li&gt;
&lt;li&gt;mutually exclusive and collectively exhaustive&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Identifying a valid, mutually exclusive and collectively exhaustive argument is both trivial and taxing.  It’s trivial because you can just see it.  Is this next statement valid?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I like elephants.  Elephants have tusks.  Therefore I like fruitcake.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s taxing because it takes mental effort.  Assessing whether the premises of your argument make both separate, non-overlapping (mutually exclusive) points and together cover all of the possible points (collectively exhaustive) requires actual, stop checking your emails every two minutes thought.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.g-star.com/en/friends/magnus-carlsen/friends-magnus-carlsenabout/"&gt;&lt;img src="http://media.tumblr.com/tumblr_lhovcjggr71qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re a &lt;a href="http://www.g-star.com/en/friends/magnus-carlsen/friends-magnus-carlsenabout/"&gt;G-Star Raw model&lt;/a&gt; you may be able to do this in your head.  For the rest of us, this is where visual thinking comes in.&lt;/p&gt;

&lt;h2&gt;Build your pyramid with post-its&lt;/h2&gt;

&lt;p&gt;Find a quiet room with a clear table.  Write down all of the points you want to make on individual post-it notes.  Arrange the post-its into a logical structure.&lt;/p&gt;

&lt;p&gt;Some of the points will be straightforward statements of fact.  These go into your situation and complication piles.  Other points will be part of your argument.  These you arrange into a pyramid.&lt;/p&gt;

&lt;p&gt;Your argument will start with a key line of points.  These points will together summarise and provide a mutually exclusive and collectively exhaustive logical argument for the point of your proposal.  For example, say your answer is:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Re-classify your retail stores as an social / entertainment destination&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your key points must explain precisely why this is a good idea, e.g.:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;ul&gt;&lt;li&gt;your retail stores are your key asset&lt;/li&gt;
  &lt;li&gt;your customers don’t want to buy music in-store&lt;/li&gt;
  &lt;li&gt;your customers do want a social / entertainment destination&lt;/li&gt;
  &lt;li&gt;reclassifying as a social / entertainment destination is manageable&lt;/li&gt;
  &lt;li&gt;any other response is going to drive you out of business&lt;/li&gt;
  &lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;Each one of these points is an assertion.  If the assertion is uncontroversial and requires no supporting argument, you’re done.  If it’s reasonable to question them, you need to support each point with a logical argument, just as they support your answer.&lt;/p&gt;

&lt;p&gt;Hopefully it’s now clear how the pyramid grows.  You start with a point.  You support it with an argument made up of individual points.  You take each point in this argument and, if necessary, support it with its own argument.  Visually, this means creating a pyramid of post-its that looks a bit like a christmas tree.  Your answer, the point of the proposal, is at the top of the pyramid, with the key points below it and their supporting points below them and so on.&lt;/p&gt;

&lt;p&gt;A key insight of the Pyramid Principle is that the exercise of evaluating your own logic provides an opportunity to evaluate what you are saying.  Stand over your pyramid of post-its.  Is your argument logical?  Is it true?  Is it actually what you want to say?&lt;/p&gt;

&lt;h2&gt;Transcribe into bullet points&lt;/h2&gt;

&lt;p&gt;You build your pyramid using post-its because:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;writing a point down removes the cognitive overhead of keeping it in mind&lt;/li&gt;
&lt;li&gt;the size of post-its force you to write succinctly&lt;/li&gt;
&lt;li&gt;you can move them around easily&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Swapping out a post-it is simple.  Rewriting a paragraph is time consuming and irritating.  Work in post-its for as long as possible.  However, there comes a time when you’re satisfied with the argument you’re making and need to turn the thing into a document.&lt;/p&gt;

&lt;p&gt;Start in a text editor.  Not your word processing software like Word or Pages.  A simple, no fonts, no formatting text editor like &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt; or &lt;a href="http://www.editpadpro.com/"&gt;Edit Pad Pro&lt;/a&gt;.  Write up your points as bullet points.  Nest (indent) them, e.g.::&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Proposal Title

Situation: 

... facts ...

Complication:

... facts ...

Question: so, what do we recommend?

Answer: ... your point ...

* key point 1
* key point 2
* key point 3

## Key Point 1

* supporting point 1
  - sub point 1
    - sub sub point 1
    - sub sub point 2
    - sub sub point 3
  - sub point 2
  - sub point 3
* supporting point 2
* supporting point 3
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This step essentially translates your pyramid of post-its into nested bullet points.  When you’re done, I’d suggest taking a break to clear your mind.  You could also, at this point, send the outline proposal to colleagues / collaborators for their feedback.&lt;/p&gt;

&lt;p&gt;Time passes.  A dog barks.  Lawnmowers hum in the distance.&lt;/p&gt;

&lt;p&gt;Remember the key insight that evaluating your own logic provides an opportunity to evaluate what you are saying.  Re-read your bullet points.  Is your argument logical?  Is it true?  Is it actually what you want to say?  If and only if you’re happy with the meaning and structure (forcing yourself to make sure everything is mutually exclusive and collectively exhaustive) then move on to prose.&lt;/p&gt;

&lt;h2&gt;Write up into minimal prose&lt;/h2&gt;

&lt;p&gt;Create a second new document in your text editor (not your word processing software) and setup your screen so you can see both side by side.  Now, working section by section, copy over and do the absolute minimum required to turn the bullets into coherent grammar.&lt;/p&gt;

&lt;p&gt;This can mean turning bullets into paragraphs, or they can stay as slightly expanded bullets.  For example, clear but ungrammatical bullets points (literal transcriptions of the scribbled text on your post-it notes) like:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;ul&gt;&lt;li&gt;market tiny&lt;/li&gt;
  &lt;li&gt;opportunity???&lt;/li&gt;
  &lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;Could become:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The potential market is tiny, so the opportunity is questionable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or could remain as bullets:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;ul&gt;&lt;li&gt;the potential market is tiny&lt;/li&gt;
  &lt;li&gt;the opportunity is questionable&lt;/li&gt;
  &lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;Try to write the absolute minimum.  The closer to the original bullets, the fresher and more to-the-point the prose will seem.  The fewer words you use the better.  Whatever you do, do not obfuscate or flesh out the language: say “printing money” not “quantitative easing”.  Reading prose out loud can be a good test: would you actually speak like that if you were talking to a friend over coffee?&lt;/p&gt;

&lt;p&gt;You’ll need some syntax to mark headings of specific levels.  Use any such micro-syntax you like.  As you may have seen from the bullet points example above, I use &lt;a href="http://daringfireball.net/projects/markdown"&gt;markdown&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Heading 1

## Heading 2

### Heading 3
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I also use simple placeholders for media elements, e.g.:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;... screenshot goes here ...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once you’ve written up the document in prose, you have another candidate for a draft to circulate for feedback and a draft to review yourself after enough time has passed.&lt;/p&gt;

&lt;h2&gt;Typeset your final document once&lt;/h2&gt;

&lt;p&gt;Finally, when you’re sure the meaning, structure and wording is right, typeset the document using a word processor.  For me, this means pasting the text into Pages, applying pre-set styles, dropping in media elements like images and budgets, hooking up hyperlinks and, where the proposal is more than a couple of pages, adding an auto-generated table of contents.&lt;/p&gt;

&lt;p&gt;If you’ve followed this method and really internalised the &lt;a href="http://www.amazon.com/Pyramid-Principle-Logic-Writing-Thinking/dp/0273710516"&gt;Pyramid Principle&lt;/a&gt;, you’ll have a document that communicates your ideas succinctly, with clarity and force.&lt;/p&gt;</description><link>http://thruflo.com/post/3701380098</link><guid>http://thruflo.com/post/3701380098</guid><pubDate>Mon, 07 Mar 2011 13:29:56 +0000</pubDate><category>writing</category><category>proposal</category><category>sales</category></item><item><title>Using the web securely in a repressive regime</title><description>&lt;p&gt;Two nights ago I got an email from a friend in a country not so far from Egypt.  He/she was considering trying to help document and raise awareness of brutal government repression and was worried about being tracked down (and possibly much worse) when using the web.&lt;/p&gt;

&lt;p&gt;I spoke to &lt;a href="http://tav.espians.com/"&gt;Tav&lt;/a&gt;, who knows a great deal about decentralised systems and web anonymity.  He explained things to me, which I shared with my friend and summarised in &lt;a href="http://twitter.com/#!/thruflo/status/39043719487438849"&gt;a tweet&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://twitter.com/#!/thruflo/status/39043719487438849"&gt;&lt;img src="http://media.tumblr.com/tumblr_lgzo0lCzCr1qbuf8b.png" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I thought I’d follow up with a blog post to explain to anyone who is using the web in a repressive regime what the risks are and what they can do to avoid being identified and having their communications hacked.   This post is not the final word on the topic: I’m far too badly informed to write that.  Instead, it tries to explain things relatively simply for a non-technical reader.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;When you use the web, there are three things you must bear in mind:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;encrypt your information&lt;/li&gt;
&lt;li&gt;use a secure network&lt;/li&gt;
&lt;li&gt;you’re still taking a huge risk&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;The rest of this post explains these three points in more detail.  You can also skip to the &lt;a href="#actions"&gt;Summary of recommended actions&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Encrypting your information&lt;/h3&gt;

&lt;p&gt;When you send something across the Internet, it’s simple to intercept and read it without you knowing.  This applies to everything: email, instant messaging, videos, documents, you name it, if you send it across the Internet, someone can sit in between you and your intended recipient and read it.&lt;/p&gt;

&lt;p&gt;You can stop this happening by using a secure connection that’s encrypted, turning the information sent through it into gobbledygook until it gets to the intended recipient.  When you’re using the web, this means connecting to websites using an address that starts with &lt;a href="http://en.wikipedia.org/wiki/HTTP_Secure"&gt;https://&lt;/a&gt;.  If you’re uploading or downloading files using FTP, you need to use &lt;a href="http://kb.iu.edu/data/akqg.html"&gt;sftp://&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;br/&gt;&lt;a href="https://encrypted.google.com/"&gt;&lt;img src="http://media.tumblr.com/tumblr_lgzp7r8Kjg1qbuf8b.gif" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, you can use a secure version of Google at &lt;a href="https://encrypted.google.com/"&gt;https://encrypted.google.com/&lt;/a&gt; and you can secure your email using &lt;a href="https://mail.google.com"&gt;https://mail.google.com&lt;/a&gt; and / or by &lt;a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;answer=13287"&gt;configuring your email client to use SSL&lt;/a&gt; when sending and receiving mail.&lt;/p&gt;

&lt;p&gt;However, there are a whole range of gotchas.  First up, with email, just because you’re securing your mail doesn’t mean your recipient is.  If you’re relying on secure email, make 100% sure all recipients are setup securely.  Or use &lt;a href="https://www.hushmail.com/"&gt;https://www.hushmail.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Secondly, with the web, it’s very easy to send some requests using unsecured connections.  If you’re serious about this, you should browse the web using Firefox, following these steps:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;either &lt;a href="http://www.mozilla.com/firefox/"&gt;install a new version of Firefox&lt;/a&gt; or, if you already have one, &lt;a href="http://browserland.com/how-to/restore-firefox-default-settings-without-uninstalling-it/"&gt;reset your existing version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;either disable or simply never install any third party plugins like Flash or Java&lt;/li&gt;
&lt;li&gt;install and enable the &lt;a href="https://www.eff.org/https-everywhere"&gt;https-everywhere&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/noscript/"&gt;noscript&lt;/a&gt; Firefox extensions&lt;/li&gt;
&lt;li&gt;&lt;a href="http://support.mozilla.com/kb/enabling%20and%20disabling%20cookies"&gt;disable cookies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geekace.com/open-firefox-3-5-in-private-mode-by-default.html"&gt;enable private browsing by default&lt;/a&gt; (and always browse in private browsing mode)&lt;/li&gt;
&lt;li&gt;when visiting a website, always check for the “lock” icon on the status bar that shows that you are on a secured web site (unless you’re using Firefox 4, in which &lt;a href="http://ssl.entrust.net/blog/?p=398"&gt;it has disappeared&lt;/a&gt;, sigh) plus if the lock icon has a little “i” symbol which says “Warning: Contains unauthenticated content” then close the site immediately and don’t go back&lt;/li&gt;
&lt;li&gt;use another browser for your “normal” web use&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href="http://silcnet.org/"&gt;&lt;img src="http://media.tumblr.com/tumblr_lgzp9jfa1Z1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thirdly, normal instant messaging is just not secure.  Stop using Skype or MSN or whatever you’re using and get everyone you’re talking to to install and use &lt;a href="http://silcnet.org/"&gt;SILC&lt;/a&gt;.  It’s secure.  Your existing chat software isn’t.&lt;/p&gt;

&lt;h3&gt;Using a secure network&lt;/h3&gt;

&lt;p&gt;As we’ve seen above, you need to use a secure connection to protect your information from being intercepted.  However, whilst you can encrypt (i.e.: turn into gobbledygook) the information you send, you can’t encrypt your Internet address or the Internet address you are sending the information to.  This means that you are vulnerable to tracking and traffic analysis.&lt;/p&gt;

&lt;p&gt;For example, if you post a video to YouTube or a message to Twitter, you could be identified as its author, even if you published using an anonymous account through a secure connection.  Equally, if you regularly communicate with other people, sophisticated traffic analysis can identify you as being part of a network of activists.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.torproject.org/"&gt;&lt;img src="http://media.tumblr.com/tumblr_lgzpcscaBg1qbuf8b.png" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fortunately, there is a tool, called &lt;a href="http://www.torproject.org/"&gt;Tor&lt;/a&gt;, that you can use to make it very hard for people to see where you are connecting to or to trace you as the source of something.  Tor routes all of your traffic through a network of secure tunnels.  This means that someone watching your traffic and the traffic coming into, say, YouTube, will have a very very hard job to match them up.&lt;/p&gt;

&lt;p&gt;Read the documentation on &lt;a href="http://www.torproject.org/docs/documentation.html.en"&gt;how to install it here&lt;/a&gt;.  Follow all the steps, including configuring Firefox to use Tor.  Then when you browse the web using Firefox (as discussed above) enable Tor using the Torbutton.&lt;/p&gt;

&lt;p&gt;If you’re really serious about this stuff, it’s probably worth getting stuck into &lt;a href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorifyHOWTO"&gt;the hard core documentation about using Tor with other applications&lt;/a&gt;.  This includes &lt;a href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorifyHOWTO/IrcSilc#SILC"&gt;using Tor with SILC&lt;/a&gt;.  As it says, “Combining Tor and SILC might be one of the safest ways to communicate with someone over the Internet”.  You might also find &lt;a href="http://janusvm.com/"&gt;http://janusvm.com/&lt;/a&gt; and &lt;a href="http://www.privoxy.org/"&gt;http://www.privoxy.org/&lt;/a&gt; useful.&lt;/p&gt;

&lt;p&gt;If it’s too complicated, find someone who can help you.  Worst case, you might find someone on &lt;a href="http://www.espians.com/irc-chat-on-esp.html"&gt;#esp&lt;/a&gt; who will be willing to give you a few pointers.&lt;/p&gt;

&lt;h3&gt;You’re still taking a huge risk&lt;/h3&gt;

&lt;p&gt;So, you’re encrypting your information and using a secure network.  Leaving aside the risks that you get the configuration wrong or the snoopers are way more sophisticated that I can even comprehend, you’re still wide open.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.apple.com/downloads/macosx/system_disk_utilities/permanenteraser.html"&gt;&lt;img src="http://media.tumblr.com/tumblr_lgzpkiKpNB1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, there’s the information on your hard drives.  One remedy is to delete using a permanent erase tool that overwrites the data lots of times (for &lt;a href="http://eraser.heidi.ie/"&gt;Windows&lt;/a&gt;, &lt;a href="http://www.apple.com/downloads/macosx/system_disk_utilities/permanenteraser.html"&gt;Mac&lt;/a&gt; or &lt;a href="http://wipefreespace.sourceforge.net/"&gt;Unix&lt;/a&gt;).  However, at some point you’ll actually need the files and you can’t delete what you’re currently working on.&lt;/p&gt;

&lt;p&gt;More fundamentally, there’s the information in the content you distribute.  Like your email, so carefully encrypted and routed through Tor, just sat there, all plain text and decrypted in your friend’s inbox.  Your friend who just got arrested.  Who just got tortured to reveal their password.  To reveal your name.&lt;/p&gt;

&lt;p&gt;When it comes down to it, there’s only so far you can go through a network of secure tunnels.  At some point, you’re going to need your content to surface and at that point, you’re as vulnerable as ever.&lt;/p&gt;

&lt;h3 id="actions"&gt;Summary of recommended actions&lt;/h3&gt;

&lt;p&gt;Encrypt your information:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;when browsing lock Firefox down and always use &lt;a href="http://en.wikipedia.org/wiki/HTTP_Secure"&gt;https://&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;when using FTP to share files, always use &lt;a href="http://kb.iu.edu/data/akqg.html"&gt;sftp://&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;secure your email or use &lt;a href="https://www.hushmail.com/"&gt;https://www.hushmail.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;use &lt;a href="http://silcnet.org/"&gt;http://silcnet.org/&lt;/a&gt; to communicate&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Use a secure network:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.torproject.org/docs/documentation.html.en"&gt;install Tor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorifyHOWTO"&gt;configure it&lt;/a&gt; to work with the applications you use&lt;/li&gt;
&lt;li&gt;ask for help if it’s too complicated&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;You’re still taking a huge risk:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;don’t leave files lying around (securely erase them)&lt;/li&gt;
&lt;li&gt;limit the size of your network&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Good luck.&lt;/p&gt;</description><link>http://thruflo.com/post/3441922573</link><guid>http://thruflo.com/post/3441922573</guid><pubDate>Tue, 22 Feb 2011 09:11:00 +0000</pubDate><category>security</category><category>repression</category><category>tor</category><category>silc</category></item><item><title>Catching Up</title><description>&lt;p&gt;I haven’t posted in a fair while.  Partly because I’ve been busy with &lt;a href="http://www.largeblue.com"&gt;work&lt;/a&gt;.  Partly because I’ve been working on &lt;a href="http://pypi.python.org/pypi/weblayer"&gt;weblayer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The office has been busy on &lt;a href="http://openideo.com"&gt;http://openideo.com&lt;/a&gt; and its offshoots.  I’ve been managing the redesign and redevelopment of a major NGO’s websites and working on a &lt;a href="http://eurotrx.com"&gt;financial startup&lt;/a&gt; on top of the usual load of proposals and whatnot.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://pypi.python.org/pypi/weblayer"&gt;weblayer&lt;/a&gt; is firmly in the &lt;a href="http://quixote.ca/"&gt;Quixotic&lt;/a&gt; tradition.  Yet another WSGI framework in &lt;a href="http://wsgi.org/wsgi/Frameworks"&gt;a world of WSGI frameworks&lt;/a&gt;.  So why do it?  Well, proposals and whatnot are good so far as they go but a developer has to keep his hand in.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;Inspired by &lt;a href="http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-decided-to.html"&gt;this post&lt;/a&gt; on the Google Testing blog, I took &lt;a href="http://pypi.python.org/pypi/thruflo.webapp"&gt;a library I’d made earlier&lt;/a&gt; and used it to learn how to write testable code.  I analysed and refactored, simplified and tightened, wrote exhaustive &lt;a href="https://github.com/thruflo/weblayer/tree/master/src/weblayer/tests"&gt;unit tests&lt;/a&gt;, &lt;a href="https://github.com/thruflo/weblayer/tree/master/src/weblayer/tests/ftests"&gt;functional tests&lt;/a&gt; and serious &lt;a href="http://packages.python.org/weblayer"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At the end of the process, what did I have?  On the one hand, it could be argued, an entirely pointless, even counter productive (given the &lt;a href="http://lists.repoze.org/pipermail/repoze-dev/2010-November/003619.html"&gt;lack of oxygen&lt;/a&gt; in the Python world and abundance of &lt;a href="http://bottle.paws.de/"&gt;tools&lt;/a&gt; &lt;a href="http://flask.pocoo.org/"&gt;solving&lt;/a&gt; &lt;a href="http://werkzeug.pocoo.org/"&gt;the&lt;/a&gt; &lt;a href="http://webpy.org/"&gt;same&lt;/a&gt; &lt;a href="http://pythonpaste.org/webob/"&gt;problem&lt;/a&gt;) new tool for writing web applications.  On the other, a new ability to write bulletproof code.&lt;/p&gt;

&lt;p&gt;It means I haven’t got round to writing unmissable posts on redefining web design (clue, you’re a “screen designer”) or the role of systems thinking in IA (&lt;a href="http://www.amazon.com/Toyota-Production-System-Beyond-Large-Scale/dp/0915299143"&gt;study demand&lt;/a&gt;).  However, I can tell you, it feels good to have a new super power.&lt;/p&gt;</description><link>http://thruflo.com/post/2929887684</link><guid>http://thruflo.com/post/2929887684</guid><pubDate>Tue, 25 Jan 2011 22:03:00 +0000</pubDate><category>weblayer</category><category>python</category><category>testing</category></item><item><title>A New Kind of Business</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_laqmzxbhcY1qbuf8b.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.custdev.com/"&gt;Customer Development&lt;/a&gt; is essentially practical.  It’s advocated as a &lt;a href="http://www.justfuckingdoit.com/"&gt;JFDI&lt;/a&gt; approach that “just works”.  Samuel L Jackson standing at the top of the stairs with a handheld megaphone shouting “Get out of the building!”&lt;/p&gt;

&lt;p&gt;Which is perhaps all very well &lt;a href="/post/921673055/in-the-beginning"&gt;if you’re bootstrapping a startup&lt;/a&gt; but makes me wonder not just whether but &lt;em&gt;how&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt; it works.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;The answer is two fold.  The immediate response, something to do with staying grounded in what customers want and not wasting time developing the wrong product, is only half the story.  More interesting is the focus on &lt;em&gt;repeatability&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_laqmtjz9RO1qbuf8b.gif" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Customer discovery and validation are the steps most people associate with #custdev.  However, getting out of the building to check you have customers is really only a first step because you (as in you the individual) are at the heart of these early stages.  To build a business you need to scale and that means people doing stuff and making decisions without you being there.&lt;/p&gt;

&lt;p&gt;This is where the repeatability of the sales roadmap is important.  Developing a roadmap that your sales team can follow without you is what lets you step back, delegate and grow.  This is reinforced by the focus on mission-centric culture.  The sales roadmap is, in a sense, to a salesperson what DNA is to a cell.&lt;/p&gt;

&lt;p&gt;As Stephen Wolfram’s classic &lt;a href="http://www.wolframscience.com/nksonline/toc.html"&gt;A New Kind of Science&lt;/a&gt; has shown, small functional loops can yield huge richness and complexity.  Your company mission is like the ruleset of a cellular automaton.&lt;/p&gt;

&lt;p&gt;Customer development works not just because it helps avoid wasting your time but also because it has repeatability at its core.  Once again, we find the &lt;a href="http://en.wikipedia.org/wiki/The_Timeless_Way_of_Building"&gt;Timeless Way of Building&lt;/a&gt; at the heart of &lt;a href="http://blogs.hbr.org/haque/2009/01/a_users_guide_to_21st_century.html"&gt;21st Century business&lt;/a&gt;.&lt;/p&gt;</description><link>http://thruflo.com/post/1380001158</link><guid>http://thruflo.com/post/1380001158</guid><pubDate>Sat, 23 Oct 2010 11:13:00 +0100</pubDate><category>custdev</category></item><item><title>How Retailers Should Use Foursquare</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_l8c0v6ycn51qbuf8b.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Yesterday, as I walked into a clothes shop near Oxford Street, I heard a beep.  I’m not sure what it was but it made me think, hang on, do “real world” shops count visitors?  They record their sales but do they know their conversion rates?&lt;/p&gt;

&lt;p&gt;This led me down the path of thinking about location based services and the potential to use data from check-ins to pro-actively personalise real world shopping experiences.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;p&gt;I visualised some kind of doorway device, perhaps using infra-red or maybe a pressure pad, to count people in.  Then I realised that if you’re going to stick a device on a doorway you have a media platform and that platform already exists.  It’s &lt;a href="http://foursquare.com"&gt;Foursquare&lt;/a&gt; and &lt;a href="http://www.facebook.com/places/"&gt;Facebook Places&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A quick hop onto the docs showed me that Foursquare have designed &lt;a href="http://foursquare.com/businesses/"&gt;a set of features&lt;/a&gt; that retailers can use to customise their service:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We’ve built simple self-service tools to allow you, the business manager, to create different kinds of foursquare Specials, manage multiple Specials and ultimately track how these Specials perform. We think these services will empower you to develop more engaging ongoing relationships with your customers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Been here three times this week, sir?  Have a free muffin with that flat white.  This is real world personalisation, based on online, social data.  However, it’s not quite the whole hog.&lt;/p&gt;

&lt;h3&gt;Pro-active real world personalisation&lt;/h3&gt;

&lt;p&gt;Amazon don’t wait for you to ask.  They’re pro-active about putting book covers in your face.  Yet with the Foursquare approach so far, the onus is on the customer.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://foursquare.com/businesses/"&gt;&lt;img src="http://media.tumblr.com/tumblr_l8a5z4pFzZ1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They need to look at their mobile app, read a notification message, put aside their shyness and remember when they go to the counter to say “hey, I’ve been here three times this week, I qualify for a muffin”.&lt;/p&gt;

&lt;p&gt;Instead, imagine a screen on the counter, facing towards the shop assistant.  On the screen, there’s a dashboard to a web service that aggregates data from Facebook Places, Foursquare, Gowhalla and their future ilk and runs it through things like &lt;a href="http://www.intelligentretail.co.uk/"&gt;the retailer’s EPoS / CRM system&lt;/a&gt; and &lt;a href="http://www.rapleaf.com/"&gt;Rapleaf&lt;/a&gt;’s increasingly scary personal search to display “insight into who’s in the room”.&lt;/p&gt;

&lt;p&gt;This is exactly what &lt;a href="http://peeraround.com/"&gt;Peeraround&lt;/a&gt; does to Foursquare already and you can see their value articulation includes both “useful social tool” and “business CRM”:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://peeraround.com/"&gt;&lt;img src="http://media.tumblr.com/tumblr_l8ahumywu71qbuf8b.png" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Making this data available to the shop assistant means that now, when a customer checks in, the shop assistant can see who they are and take the initiative to pro-actively personalise the experience.  Excuse me sir, I see you’ve been here three times this week.  Would you like a free muffin?&lt;/p&gt;

&lt;h3&gt;Going beyond the muffin&lt;/h3&gt;

&lt;p&gt;This kind of dashboard is, perhaps, a minimum viable product for an enterprise wrapper around location based data APIs.  However, if we widen our view of the shop beyond the counter, it’s clear that there’s more than just a muffin at stake.&lt;/p&gt;

&lt;p&gt;A little business logic and voilà, the products being modeled on the big plasma outside the changing room are tailored to the person standing there.  The interactive whiteboard shows what your friends bought.&lt;/p&gt;

&lt;p&gt;Equally, customers who have Foursquare installed all have the hardware capability to read product information and pricing through their camera and an AR interface.  Imagine scanning the label on products you’re interested in to find out if you qualify for a personal discount.&lt;/p&gt;

&lt;h3&gt;Evaluating the business model&lt;/h3&gt;

&lt;p&gt;I sketched out &lt;a href="http://img.skitch.com/20100905-q5dtdqgg9hdqpcckwc8cnitqey.jpg"&gt;a rough business model for a startup&lt;/a&gt; based around providing the web service platform:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://img.skitch.com/20100905-q5dtdqgg9hdqpcckwc8cnitqey.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_l8aiixDWXt1qbuf8b.jpg" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s clear that there are risks.  Location based services might not cross over to the mainstream.  If successful, it would appear easy to copy the software.  I suspect you’d have to craft a service that’s simple enough to get traction whilst integrated enough to provide lock in and defensibility.&lt;/p&gt;

&lt;p&gt;However, it feels to me like there’s some inevitability here.  It’s hard to see how the world won’t be like &lt;a href="http://en.wikipedia.org/wiki/Blade_Runner#Cultural_influence"&gt;Bladerunner&lt;/a&gt;, given that personalisation works and the data already exists.&lt;/p&gt;

&lt;p&gt;Retailers need to adapt now.  The question is, is it worth making it simple for them to do so?&lt;/p&gt;</description><link>http://thruflo.com/post/1075891283</link><guid>http://thruflo.com/post/1075891283</guid><pubDate>Mon, 06 Sep 2010 16:46:00 +0100</pubDate></item></channel></rss>

