<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4892996946950136827</atom:id><lastBuildDate>Sat, 13 Dec 2025 16:06:35 +0000</lastBuildDate><category>dataPortability</category><category>design</category><category>innovation</category><category>social media</category><category>social software</category><category>software engineering</category><category>web 2.0</category><category>agile</category><category>architecture</category><category>books</category><category>business</category><category>caching</category><category>dapper</category><category>development</category><category>digital identity</category><category>facebook</category><category>hci</category><category>information</category><category>jaiku</category><category>lovefilm</category><category>mashup</category><category>methodologies</category><category>microsoft</category><category>moore</category><category>nginx</category><category>parenting</category><category>pipes</category><category>scalability</category><category>strategy</category><category>surface computing</category><category>syndication</category><category>the right stuff</category><category>version control</category><category>widgets</category><category>work</category><category>youth</category><title>The digital polis</title><description></description><link>http://polis.ecafe.org/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-3141116758128021706</guid><pubDate>Wed, 07 Sep 2011 22:53:00 +0000</pubDate><atom:updated>2011-09-07T23:54:39.216+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">caching</category><category domain="http://www.blogger.com/atom/ns#">nginx</category><category domain="http://www.blogger.com/atom/ns#">scalability</category><title>Caching a dynamic web app with nginx</title><description>The company I&#39;m working for at the moment has a web based application which normally is installed as an intranet app, but in the next month it will be part of a competition which will see it get hit, as an online demo, many orders of magnitude harder than it was designed for. With little time to re-engineer the app for scalability to these levels, I&#39;m looking at the use of caching to get internet scale performance.
&lt;br /&gt;
&lt;br /&gt;
Since the app will be performing in read only mode with a known dataset, we can treat it as a static website even though its a fully-featured ajax-loving web app. Each POST request will always return the same results and will benefit from being cached reducing the load on the app. However, my first choice of caching, Varnish, doesn&#39;t supporting caching POST requests - treating them always as dynamic content. Luckily nginx does support this uncommon use case, so lets run through a proof of concept.
&lt;br /&gt;
&lt;br /&gt;
First of all, spin up a base instance on your favourite cloud platform; in this case I&#39;m using ubuntu lucid on Rackspace cloud. Because we&#39;re going to need a non-core module for nginx, we&#39;ll need to compile nginx rather than install from package:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;wget &#39;http://sysoev.ru/nginx/nginx-0.8.28.tar.gz&#39;
tar -xzvf nginx-0.8.28.tar.gz
cd nginx-0.8.28/
&amp;nbsp;
apt-get install git-core
git clone http://github.com/simpl/ngx_devel_kit.git
git clone http://github.com/calio/form-input-nginx-module.git
&amp;nbsp;
apt-get install build-essential libpcre3-dev libssl-dev
./configure --add-module=./ngx_devel_kit --add-module=./form-input-nginx-module
make -j2
make install
&lt;/pre&gt;
&lt;br /&gt;
We now should have an install in /usr/local/nginx with the form-input-nginx module compiled in. What we&#39;ll do now is setup two nginx servers. One will be a reverse proxy which will run on port 80, this will pass requests off, unless cached, to a second server running on port 8000 which we will pass through to php running under fastcgi on 9000. FIrst edit the nginx.conf file to setup the reverse proxy:

&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;proxy_cache_path  /tmp/cache  levels=1:2    keys_zone=STATIC:10m inactive=24h  max_size=1g;
server {
        listen   80 default;
        server_name  localhost;

        location / {
                proxy_pass             http://localhost:8000;
                proxy_set_header       X-Real-IP  $remote_addr;
                proxy_cache_methods    POST;
                proxy_cache            STATIC;
                proxy_cache_valid      200  1d;
                set_form_input         $foo;
                proxy_cache_key        &quot;$request_uri$foo&quot;;
        }
}
&lt;/pre&gt;
&lt;br /&gt;
The key point here is to enable POSTs as a cache method, and to use the form-input-nginx module to extract a post variable which we&#39;ll wind into the cache key. This allows us to uniquely cache pages based on URI &lt;b&gt;and&lt;/b&gt; POST data, otherwise we&#39;d end up with the same page returning no matter the POST data. In the proof of concept this is a single variable &#39;foo&#39;.
&lt;br /&gt;
&lt;br /&gt;
Now setup the backend server which will pass requests to php:

&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;server {
    listen       8000;
    server_name  localhost;

    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}
&lt;/pre&gt;
&lt;br /&gt;
Finally get php up an running on port 9000:

&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;apt-get install php5-cgi
php-cgi -b 127.0.0.1:9000 &amp;amp;
&lt;/pre&gt;
&lt;br /&gt;
We will create two web pages for the proof of concept, the first (index.html) is a simple form:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;form action=&quot;test.php&quot; method=&quot;POST&quot;&amp;gt;
&amp;lt;input name=&quot;foo&quot; type=&quot;text&quot; value=&quot;bar&quot; /&amp;gt;
&amp;lt;input type=&quot;submit&quot; /&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
The second page (test.php) is only slightly more complicated:

&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;h1&amp;gt;Am I cached?&amp;lt;/h1&amp;gt;
&amp;lt;H2&amp;gt;&amp;lt;?php echo time() . &quot; : &quot; . $_POST[&#39;foo&#39;]; ?&amp;gt;&amp;lt;/H2&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
Let&#39;s give it a go, spin up nginx:

&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;/usr/local/nginx/sbin/nginx
&lt;/pre&gt;
&lt;br /&gt;
When we submit the form we see the current timestamp and the value of the &#39;foo&#39; variable. The page is then cached so on reload the timestamp remains the same. However, if we go back and change the value of &#39;foo&#39; in the form and submit again we will see a fresh page fetched (remember its part of the cache key) so in this way the proxy builds up a cache of all possible uri+POST data.&lt;br /&gt;
&lt;br /&gt;
A few questions remain for full rollout - how performant is the form-input-nginx module? It&#39;s having to read the actual request and parse the POST data so its certainly going to impact the proxy performance. Secondly, on the real app, we may have to add in a proxy_ignore_headers directive if the app is being well behaved and setting cache-control or expires headers. This will force nginx to ignore them and cache the data anyway.
</description><link>http://polis.ecafe.org/2011/09/caching-dynamic-web-app-with-nginx.html</link><author>noreply@blogger.com (Mark Cheverton)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-2161537931858058702</guid><pubDate>Thu, 14 Jul 2011 20:25:00 +0000</pubDate><atom:updated>2011-09-07T17:01:11.603+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software engineering</category><category domain="http://www.blogger.com/atom/ns#">the right stuff</category><category domain="http://www.blogger.com/atom/ns#">version control</category><title>The right stuff: Part 1, Version Control - git and gitosis</title><description>&lt;blockquote&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm1.static.flickr.com/47/118876699_291356fbee.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;133&quot; src=&quot;http://farm1.static.flickr.com/47/118876699_291356fbee.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;i&gt;I&#39;m currently doing some work at a local startup that&#39;s looking to grow it&#39;s software engineering side. This has given me a unique opportunity to set up devops starting from a blank sheet. So I thought I&#39;d blog about my progress along the way and share my experiences putting a toolset into place.&lt;/i&gt;&lt;/blockquote&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;Part 1: Version Control - git and gitosis&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As soon as you move beyond one developer version control becomes a necessity. Even alone, the advantages of being able to roll back your code, manage releases, and automate deployment are considerable. &lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot;&gt;Version control&lt;/a&gt; is the foundation of any software engineering enterprise and so before anything else, we&#39;ll start here.&lt;br /&gt;
&lt;br /&gt;
Things have progressed since the days of CVS, and now we have funky new distributed version control systems to play with. These allow developers to have a personal repository on their machines and push out changes to remote repositories for merging and release. Apart from being able to work more easily on the move, and encourage more regular commits of your code, this supposedly makes merges &lt;a href=&quot;http://en.wikipedia.org/wiki/Distributed_revision_control#Distributed_vs._centralized&quot;&gt;much less painless&lt;/a&gt; as well. So I&#39;m going to run you through installing &lt;a href=&quot;http://git-scm.com/&quot;&gt;git&lt;/a&gt;, which is one of the most recognisable names in this category, and the server component, gitosis.&lt;br /&gt;
&lt;br /&gt;
Before we start a note about environment - I&#39;m working on a mac, but these instructions should be easily translatable to any platform. I&#39;m also assuming that you have a &#39;management server&#39; which is going to act as a persistant, backed up location for your repository and for other key software in later posts. In my case this is running Ubuntu, for other flavours of linux you will have to change the package install steps. I&#39;m going to refer to these as &lt;b&gt;local&lt;/b&gt; and &lt;b&gt;mgt&lt;/b&gt; below and I&#39;m assuming you also have an account called &lt;i&gt;dev&lt;/i&gt;&amp;nbsp;on &lt;b&gt;mgt&lt;/b&gt;&amp;nbsp;which we&#39;ll use to set things up.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Installation&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Start by &lt;a href=&quot;http://git-scm.com/&quot;&gt;installing git&lt;/a&gt; on both &lt;b&gt;local&lt;/b&gt; and &lt;b&gt;mgt&lt;/b&gt; and setup your details correctly on &lt;b&gt;local&lt;/b&gt;&amp;nbsp;so commits are attributed:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
git config --global user.name &quot;John Doe&quot;
git config --global user.email &quot;john.doe@myco.com&quot;
&lt;/pre&gt;
Next on&amp;nbsp;&lt;b&gt;mgt&lt;/b&gt; install gitosis, which on ubuntu is conveniently packaged:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo apt-get install gitosis
&lt;/pre&gt;
If you want to access your gitosis repository remotely, then ensure that your firewall/router has a rule setup to forward port 9418 to &lt;b&gt;mgt&lt;/b&gt;. Next, create a ssh key setup for the &lt;i&gt;dev&lt;/i&gt; user on &lt;b&gt;mgt&lt;/b&gt;&amp;nbsp;and initialise the repository:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
ssh-keygen -t rsa
sudo -H -u gitosis gitosis-init &amp;lt;~/.ssh/id_rsa.pub
&lt;/pre&gt;
At this point, you&#39;re pretty much up and running, give it a go by checking out the admin repository on&amp;nbsp;&lt;b&gt;mgt&lt;/b&gt;:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
mkdir ~/repo
cd ~/repo
git clone -o myco gitosis@mgt.myco.com:gitosis-admin.git
&lt;/pre&gt;
(Replace myco with a tag for your company; this option isn&#39;t strictly necessary, but I&#39;ve found it useful when pushing changes to more than one place to be explicit about pushes to the company repository)&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Adding a user&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Now to create an account for yourself to access to your new repository. Generate yourself a ssh key if you don&#39;t have one already and copy it from &lt;b&gt;local&lt;/b&gt;&amp;nbsp;to the gitosis-admin project you just cloned:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.id dev@mgt.myco.com:~/repo/gitosis-admin/keydir/john.doe@myco.com.pub
&lt;/pre&gt;
Then edit &lt;i&gt;~/repo/gitosis-admin/gitosis.conf&lt;/i&gt;&amp;nbsp;on &lt;b&gt;mgt&lt;/b&gt;&amp;nbsp;to&amp;nbsp;create a new group for your team with your first project and add yourself to the members line. While you&#39;re there add yourself to the gitosis-admin team. Something like:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
[gitosis]

[group gitosis-admin]
writeable = gitosis-admin
members = dev@mgt.myco.com john.doe@myco.com

[group teamawesome]
writable = myproject
members = john.doe@myco.com
&lt;/pre&gt;
Now for your first commit!&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
cd ~/repo/gitosis-admin
git add keydir/john.doe@myco.com.pub
git commit -am &#39;Created myproject and added John&#39;
git push myco master
&lt;/pre&gt;
The &lt;i&gt;git add&lt;/i&gt; does what it says and marks a file to be added to the repository - git won&#39;t add any files you don&#39;t tell it to, so you can have versioned and unversioned files in the same directory. The next line commits your changes to the local repository (in ~/repo/gitosis-admin/.git) with -a to tell git to commit all files which have changed. The last command then pushes the local repository to the gitosis server you cloned it from (which is also &lt;b&gt;mgt&lt;/b&gt;&amp;nbsp;in this first case).&lt;br /&gt;
&lt;br /&gt;
Now you have access to the &lt;i&gt;gitosis-admin&lt;/i&gt;&amp;nbsp;project, let&#39;s add another user but this time locally. Get Jane to give you her public key and on &lt;b&gt;local&lt;/b&gt;:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
mkdir ~/repo
cd ~/repo
git clone -o myco gitosis@mgt.myco.com:gitosis-admin.git
cd gitosis-admin
cp janes-public-key.pub keydir/jane.doe@myco.com.pub
git add keydir/jane.doe@myco.com.pub
&lt;/pre&gt;
Edit gitosis.conf and add Jane to myproject members, then:
&lt;pre class=&quot;prettyprint&quot;&gt;
git commit -am &#39;Added Jane to myproject&#39;
git push myco master
&lt;/pre&gt;
Now you&#39;ve told gitosis-admin about myproject and added some users, lets actually make the project on&amp;nbsp;&lt;b&gt;local&lt;/b&gt;&amp;nbsp;and initialise the local repository:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
mkdir ~/repo/myproject
cd ~/repo/myproject
git init
&lt;/pre&gt;
And push it out to gitosis:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
git remote add myco gitosis@mgt.mycom.com:myproject.git
git add .
git push myco master
&lt;/pre&gt;
Add a new file:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
echo &#39;A test file&#39; &amp;gt; test.txt
git add test.txt
&lt;/pre&gt;
Commit it locally (repository in ~/repo/myproject/.git):&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
git commit -am &#39;Added test file&#39;
&lt;/pre&gt;
Push changes to gitosis for everyone else to grab:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
git push myco master
&lt;/pre&gt;
And if Jane wants to work on the project from her machine she can do:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
cd ~/repo
git clone -o myco gitosis@mgt.myco.com:myproject.git
&lt;/pre&gt;
One other useful command is if you&#39;re coming back to a repository that&#39;s already checked out and you want to make sure you have all the latest changes from gitosis:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
git pull
&lt;/pre&gt;
So that&#39;s the basics, but there&#39;s one final thing I like to have setup... I&#39;ve always liked to have a mailing list running which shows commits into the central repository so all developers can have an eye to what&#39;s going on and how projects are evolving. In this case I&#39;ve setup a google group on our corporate google apps account and added John and Jane as members. Now to integrate gitosis with it. Unfortunately this requires editing a file in the actually repository itself on &lt;b&gt;mgt&lt;/b&gt;:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
cd /srv/gitosis/repositories/myproject.git
cat &amp;lt;&amp;lt;EOF |sudo tee -a config
[hooks]
mailinglist = git-commits-list@myco.com
announcelist = git-commits-list@myco.com
envelopesender = dev@myco.com
EOF
echo &#39;A meaningful description of my project&#39; |sudo tee description
&lt;/pre&gt;
You also need to setup a hook. For future projects this will be&amp;nbsp;rolled out by default by us dropping it into the templates directory so that you only have to edit the config file and provide a description as above:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo cp /usr/share/doc/git-core/contrib/hooks/post-receive-email /usr/share/git-core/templates/hooks/post-receive
sudo chmod +x /usr/share/git-core/templates/hooks/post-receive
cd /srv/gitosis/repositories/myproject.git/hooks
sudo -u gitosis ln -s sudo chmod +x /usr/share/git-core/templates/hooks/post-receive
&lt;/pre&gt;
That&#39;s it, try making a change and&amp;nbsp;committing&amp;nbsp;in your project - you should get an nice emailing telling you about the changes.&lt;br /&gt;
&lt;br /&gt;
I hope that you&#39;ve found this a useful, version control is one of the most worthwhile things to push for at any firm even though it seems complicated at first. Stick with it, soon it will seem like second nature. In the next post we&#39;ll get our teeth into something more complicated still -&amp;nbsp;automating&amp;nbsp;your infrastructure setup with Chef.&lt;br /&gt;
&lt;br /&gt;
PS. Much of the above I&#39;m typing up after the fact (note to self - document as I go along). So if you find any inaccuracies, missing steps, or the like I apologise and please let me know in the comments so I can fix.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Image courtesy of &lt;a href=&quot;http://www.flickr.com/photos/grendelkhan/118876699&quot;&gt;grendelkhan&lt;/a&gt;&lt;/i&gt;</description><link>http://polis.ecafe.org/2011/07/right-stuff-part-1-version-control-git.html</link><author>noreply@blogger.com (Mark Cheverton)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm1.static.flickr.com/47/118876699_291356fbee_t.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-1070187241650436377</guid><pubDate>Mon, 02 May 2011 20:11:00 +0000</pubDate><atom:updated>2011-05-02T21:11:34.200+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">software engineering</category><title>Applying SCRUM in the real world</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaF6pn9aUAMTJPl-SLM_XKIjEEI3wrGy_PlKav5ppvv2zKhPRpRieXgE8sKIYB-VqklDkEViEM8JgFlE-l_I4rMLaXlNF8NB-tll-9BYif31BfytOq-o6ODykal9v-aZl9LdPpyUP65Ug/s1600/postits.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaF6pn9aUAMTJPl-SLM_XKIjEEI3wrGy_PlKav5ppvv2zKhPRpRieXgE8sKIYB-VqklDkEViEM8JgFlE-l_I4rMLaXlNF8NB-tll-9BYif31BfytOq-o6ODykal9v-aZl9LdPpyUP65Ug/s400/postits.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;Cross posted from my business website blog &lt;a href=&quot;http://www.morat.co.uk/2011/04/applying-scrum-in-the-real-world/&quot;&gt;&#39;Digital Susurrus&#39;&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
For the last few years Agile has pretty much been the only software engineering methodology in town, which in my opinion is great news. Of all the different flavours, SCRUM seems to be most in vogue with a constant stream of contract ScrumMaster roles popping up around Cambridgeshire. The interesting point to notice is that these roles all have a mandatory requirement for ScrumMaster certification, though you can pretty much guarantee that most of them will not be anywhere close to following a full SCRUM process.&lt;br /&gt;
&lt;br /&gt;
Now I&#39;m not a great fan of IT certifications. People collect these far to easily in my opinion - most are open book with multi-guess exams which are taken after a week away, at considerable expense, listening to someone pontificate about the work they did a decade ago. Certifications such as PRINCE2 bear no correlation with whether you&#39;re a good project manager, they certainly don&#39;t make you a good project manager, and in fact help to make poor project managers by allowing people to hide their lack of skill behind process and busywork. Give me someone who is just anal retentive about detail and is borderline OCD any day to get a project in on time and to budget.&lt;br /&gt;
&lt;br /&gt;
I had the joy of going through ScrumMaster accreditation a couple of weeks ago, and it did nothing to improve my view of such courses. If anything SCRUM is even less suited to this kind of training as there isn&#39;t the focus on process and artifacts. This results in a two day course which was more a patchwork of tips and tricks then suitable preparation for revolutionising the way you build software.&lt;br /&gt;
&lt;br /&gt;
My key gripe with the training though, was that although SCRUM has seemingly come of age and is clearly becoming acceptable with the mainstream, it is still expounded with this dogmatic fervour which essentially makes it unimplementable in almost all business environments. Unlike PRINCE2 or ITIL, which state that they are just collections of best practice, which you can take or leave as appropriate to make something that works for you, SCRUM says this is how things must be done. If you don&#39;t do it the SCRUM way from day one, then its not SCRUM - we wash our hands of you and you&#39;re doomed.&lt;br /&gt;
&lt;br /&gt;
This is not particularly helpful in the real world, and certainly makes it easy to trumpet the perfection of SCRUM when its only SCRUM if its implemented in a perfect environment. The reality is if I&#39;m selling to government I need to work out how to wrap my Agile process in a PRINCE2 approach because its mandated, I also will probably be working to a hard deadline, and there&#39;ll probably be performance management clauses in there. These things are not insurmountable, and shouldn&#39;t mean that I have to abandon hope of improving my development process by making it as Agile as I can. Personally I think broad brush Agile practices such as an iterative approach, release often, keeping the customer close, and many others, improve the development process at most organisations if taken on board.&lt;br /&gt;
&lt;br /&gt;
I am particularly alienated by those who espouse the perfection of developers if only they weren&#39;t dragged down by the rest of the business. At it&#39;s heart the message is: if you don&#39;t code you don&#39;t have anything useful to add. It&#39;s a very conflict driven polemic which preaches a misanthropic attitude to everyone who isn&#39;t a developer, the complete opposite of a healthy team based business. Evidence does show that freeing up developers to make choices and including their views makes better products, however this doesn&#39;t mean all developers are always responsible with freedom, or that all developers are suitably equipped to make the right decisions on all topics. I&#39;ve seen too many products designed by techies with no appreciate of the business realities to be in doubt about that.&lt;br /&gt;
&lt;br /&gt;
Now I&#39;m sure there are useful Agile courses out there that teach techniques that can be applied in the real world, sending people back to their organisations with an improved toolbox and an ability to give it a go without the fear that they have to turn the whole business on its head from day one to achieve anything. However, people aren&#39;t attending those courses because they don&#39;t provide certification, and more importantly they&#39;re seeking certification because recruiters are being lazy and are requiring it as a measure of suitability when hiring, even though their organisation most likely isn&#39;t compliant with SCRUM anyway!&lt;br /&gt;
&lt;br /&gt;
I am not arguing that ScrumMasters can&#39;t be dogmatic about the purity of their methodology, my issue is with the evils of certification and sloppy recruitment. If you&#39;re looking to recruit someone in an Agile role, please don&#39;t ask for certification, ask for experience. If you must, ask for training which gives people a wide range of software engineering approaches which are applicable in different business environments. If you&#39;re looking for external help to become Agile, think carefully before you make the important decision to be a SCRUM organisation by writing it into a job description! And be very careful of hiring the fanatical ScrumMaster who may turn your business inside out to meet the requirements of their methodology, rather than listening to what you have to say about your business and find an Agile approach that will help you improve.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Image&amp;nbsp;courtesy&amp;nbsp;of&amp;nbsp;&lt;a _mce_href=&quot;http://www.flickr.com/photos/jensjeppe/2642854570&quot; href=&quot;http://www.flickr.com/photos/jensjeppe/2642854570&quot;&gt;jensjeppe&lt;/a&gt;&lt;/em&gt;</description><link>http://polis.ecafe.org/2011/05/applying-scrum-in-real-world.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaF6pn9aUAMTJPl-SLM_XKIjEEI3wrGy_PlKav5ppvv2zKhPRpRieXgE8sKIYB-VqklDkEViEM8JgFlE-l_I4rMLaXlNF8NB-tll-9BYif31BfytOq-o6ODykal9v-aZl9LdPpyUP65Ug/s72-c/postits.jpg" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-4725817889292875675</guid><pubDate>Mon, 11 Apr 2011 17:54:00 +0000</pubDate><atom:updated>2011-04-11T18:54:43.413+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">work</category><title>To be or not to be... a consultant</title><description>Those who follow me closely will know that last month Opportunity Links closed it&#39;s doors. Whilst it&#39;s been sad to see an end to the last five years of work, it&#39;s also given me a chance to reflect on which bits of the job I enjoyed and the opportunity to focus on those elements in whatever comes next.&lt;br /&gt;
&lt;br /&gt;
So after reflecting in tranquil forests on the meaning of life, the universe and everything, I came to the clear conclusion that the thing I enjoy most is &lt;b&gt;innovation&lt;/b&gt;. I&#39;ve been at my happiest when bootstrapping some disruptive product into the market, and at my most&amp;nbsp;despondent&amp;nbsp;when dealing with day to day line management issues for a team of 50.&lt;br /&gt;
&lt;br /&gt;
Maybe this shouldn&#39;t be much of a revelation, I mean who &lt;i&gt;really&lt;/i&gt;&amp;nbsp;enjoys line management? But nobody had told my career which was obliviously heading down an increasingly management route. So this leads me to three options going forward to haul myself back where I should be:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Create my own startup, or join one in the early stages&lt;/li&gt;
&lt;li&gt;Join a mature company that hasn&#39;t lost the innovation culture (there are quite a few of these in Cambridge)&lt;/li&gt;
&lt;li&gt;Become a consultant&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;After some thought I&#39;m seriously considering option 3 which seems to be the &lt;a href=&quot;http://kindofdigital.com/news/alright-there/&quot;&gt;flavour of the month&lt;/a&gt;. It will allow me to work on a variety of different projects, applying my skills in software engineering, project management, product management and innovation, and give me the freedom to maybe explore the startup option on the side.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;My reticence is two-fold: Firstly I&#39;m getting older and more risk averse - can I pull it off risking a stable income which my kids depend on? Gone are the days when I could live on Ramen noodles while coding from a bedsit. But yes, I think there&#39;s work there and my reputation is strong enough to secure it.&amp;nbsp;The second issue is the sticking point - along with most of the business community, I dislike consultants. The majority of them are a waste of space and an expensive one at that. In many cases people turn freelance not because they&#39;re at the top of their game, but because they can&#39;t get hired. I&#39;m not sure I&#39;m totally happy with the idea of taking on the consultant label.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So I need a description for myself. One that isn&#39;t so obscure that it needs an explanation before people understand what I do, but one that doesn&#39;t have the negative connotations that come along with having &#39;consultant&#39; on your business cards. Comments are open for ideas...&lt;/div&gt;</description><link>http://polis.ecafe.org/2011/04/to-be-or-not-to-be-consultant.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-1793623747685741502</guid><pubDate>Mon, 04 Apr 2011 22:32:00 +0000</pubDate><atom:updated>2011-04-04T23:51:49.570+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social media</category><title>Creating the BeGrand social media toolbox</title><description>Has it really been three years since my last blog post?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well let me get back into the groove gently. For my grand return I&#39;d like to rescue a post that I did over on the BeGrand blog, which is sadly no more as the project has come to an end. Although some of this is now dated, with some of the services mentioned having disappeared, I do think its worth capturing for posterity and the core concepts are still valid. So here we go in its unedited form...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h1&gt;Creating the BeGrand social media toolbox&lt;/h1&gt;&lt;/div&gt;&lt;div&gt;October 19th 2009&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;As with most modern web projects, BeGrand.net needs to be linked to the social media web, both to be part of the distributed dialogue around grandparents and to draw interested visitors. However, keeping our finger on the social media pulse, even one as well defined as grandparents, requires a few handy tools to ease the pain.&lt;br /&gt;        &lt;/p&gt;&lt;p&gt;I’m going to look at three modes of interaction for our social media toolbox; &lt;strong&gt;dashboard&lt;/strong&gt;, &lt;strong&gt;asynchronous stream&lt;/strong&gt; and &lt;strong&gt;real-time&lt;/strong&gt;. These three modes should cover all our roles in the team, reflecting differing levels of attention. For the dashboard view my tool preference is &lt;a href=&quot;http://www.netvibes.com/&quot; target=&quot;_blank&quot;&gt;Netvibes &lt;/a&gt;which allows you to setup a public tabbed page which you can populate with widgets (&lt;a href=&quot;http://www.pageflakes.com/&quot; target=&quot;_blank&quot;&gt;Pageflakes &lt;/a&gt;is also good for this). To create our asynchronous stream I’ll be using &lt;a href=&quot;http://friendfeed.com/&quot; target=&quot;_blank&quot;&gt;Friendfeed&lt;/a&gt;, though again any feed aggregator service will do (&lt;a href=&quot;http://www.jaiku.com/&quot; target=&quot;_blank&quot;&gt;Jaiku &lt;/a&gt;is also good for this). Finally for real-time I’ll be using &lt;a href=&quot;http://www.yammer.com/&quot; target=&quot;_blank&quot;&gt;Yammer&lt;/a&gt;, a corporate twitter clone which works nicely with &lt;a href=&quot;http://en.wikipedia.org/wiki/Xmpp&quot; target=&quot;_blank&quot;&gt;XMPP &lt;/a&gt;services such as                 &lt;a href=&quot;http://www.google.com/talk/&quot; target=&quot;_blank&quot;&gt;gTalk &lt;/a&gt;to allow multi-device notifications.&lt;br /&gt;        &lt;/p&gt;&lt;h2&gt;Asynchronous streams&lt;br /&gt;        &lt;/h2&gt;&lt;p&gt;Starting with Friendfeed, I’ve setup three rooms one to pull in discussion of BeGrand around the web – &lt;a href=&quot;http://friendfeed.com/begrand-buzz&quot; target=&quot;_blank&quot;&gt;BeGrand buzz&lt;/a&gt;, a second to publish all our social media activity –                 &lt;a href=&quot;http://friendfeed.com/begrand-zeitgeist&quot; target=&quot;_blank&quot;&gt;BeGrand zeitgeist&lt;/a&gt;, and a final room to aggregate discussion on grandparents across the net – &lt;a href=&quot;http://friendfeed.com/begrand-clippings&quot; target=&quot;_blank&quot;&gt;BeGrand clippings&lt;/a&gt;.&lt;br /&gt;        &lt;/p&gt;&lt;p&gt;For the buzz stream I want to pull in mentions of ‘begrand’ on blogs, in comments and on twitter, so I’ve added search RSS feeds from &lt;a href=&quot;http://blogsearch.google.co.uk/&quot; target=&quot;_blank&quot;&gt;Google blog search&lt;/a&gt;,                &lt;a href=&quot;http://www.backtype.com/&quot; target=&quot;_blank&quot;&gt;Backtype&lt;/a&gt;, and &lt;a href=&quot;http://twitter.com/&quot; target=&quot;_blank&quot;&gt;Twitter &lt;/a&gt;respectively (you may need to play with your search terms if you’re getting a lot of noise in your results, for instance I added -adrien to google blog search to exclude results from someone named Adrien Begrand who appears quite regularly).&lt;/p&gt;            &lt;p&gt;For the zeitgeist stream I added in feeds from all our social media activities; our blogs, &lt;a href=&quot;http://delicious.com/&quot; target=&quot;_blank&quot;&gt;Delicious&lt;/a&gt;, &lt;a href=&quot;http://www.flickr.com/&quot; target=&quot;_blank&quot;&gt;Flickr&lt;/a&gt;,                 &lt;a href=&quot;http://www.youtube.com/&quot; target=&quot;_blank&quot;&gt;YouTube&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/reader&quot; target=&quot;_blank&quot;&gt;Google Reader&lt;/a&gt; shares, and Backtype to pull all comments made across the net by our staff (planned future services include &lt;a href=&quot;http://www.slideshare.com/&quot; target=&quot;_blank&quot;&gt;Slideshare&lt;/a&gt;, &lt;a href=&quot;http://upcoming.yahoo.com/&quot; target=&quot;_blank&quot;&gt;Upcoming&lt;/a&gt;,                 &lt;a href=&quot;http://www.getsatisfaction.com/&quot; target=&quot;_blank&quot;&gt;GetSatisfaction &lt;/a&gt;support topics ). To increase coverage of all this good stuff we’re doing, this feed is also wired into our begrandnet twitter account using                 &lt;a href=&quot;http://twitterfeed.com/&quot; target=&quot;_blank&quot;&gt;TwitterFeed &lt;/a&gt;for automatic posting.&lt;br /&gt;        &lt;/p&gt;&lt;p&gt;Finally the clippings stream pulls together two feeds; a &lt;a href=&quot;http://blogsearch.google.co.uk/&quot; target=&quot;_blank&quot;&gt;Google blog search&lt;/a&gt; and a &lt;a href=&quot;http://news.google.co.uk/&quot; target=&quot;_blank&quot;&gt;Google news search&lt;/a&gt; for ‘grandparents’. I’m mostly interested here in long form content rather than microblogging services like twitter which would overload this stream very quickly with mostly uninteresting stuff for such a generic search term.&lt;br /&gt;        &lt;/p&gt;&lt;p&gt;Whilst dipping in and out of Friendfeed may suit many roles in your team who might look at this stuff once or twice a day to take the temperature, there should be someone in your team who’s job it is to scrub it all. Whether you call it your social media, community, or marketing manager, this role needs to read &lt;em&gt;everything&lt;/em&gt; that comes through ‘buzz’ and ‘clippings’ and take action. On a practical level Friendfeed isn’t ideal for this kind of activity, so I use a feed reader such as Google Reader to wire in the two streams and maybe a few other bits and bobs such as your competitors output, making it easy to share, respond and archive.&lt;br /&gt;        &lt;/p&gt;&lt;h2&gt;Realtime&lt;br /&gt;        &lt;/h2&gt;&lt;p&gt;So I now have my three streams, but I don’t want to wait until I next look at Friendfeed to know what’s happening, so we need some real-time notification. There are a number of options here the easiest one being to use Friendfeed’s inbuilt notification settings to send updates to it’s desktop notifier or to a configurable instant messaging account.&lt;br /&gt;        &lt;/p&gt;&lt;p&gt;However, what’s missing here is some persistence and discussion – the difference between IM and a service like Twitter. Although I want real-time notification, I also want that notification to be shared with the team and to be a focus for further internal social interaction. For this kind of thing we use the excellent &lt;a href=&quot;http://www.yammer.com/&quot; target=&quot;_blank&quot;&gt;Yammer&lt;/a&gt; service which is a closed twitter clone for corporates. It allows the wiring in of any number of RSS feeds which can then be subscribed to by the team. It also supports bridging to IM so I can still get messages to my gTalk account and use an app such as BeejiveIM to get push notifications to my iPhone when I’m on the move.&lt;br /&gt;        &lt;/p&gt;&lt;h2&gt;Dashboard&lt;br /&gt;        &lt;/h2&gt;&lt;p&gt;The third perspective needed is the Dashboard. Not everyone is happy with consuming a continual stream; some want a more structured approach as evinced by the popularity of iGoogle and My Yahoo. So I’ve put together a &lt;a href=&quot;http://www.netvibes.com/begrand&quot; target=&quot;_blank&quot;&gt;social media dashboard in Netvibes&lt;/a&gt;                &lt;a href=&quot;http://www.netvibes.com/&quot; target=&quot;_blank&quot;&gt; &lt;/a&gt;with a number of tabs which are organised around what I pretentiously think of as the four axis of social media:&lt;br /&gt;        &lt;/p&gt;&lt;h3&gt;Awareness&lt;br /&gt;        &lt;/h3&gt;&lt;p&gt;The first tab attempts to detail how well we’re marketing ourselves. It is primarily the output of the ‘buzz’ stream and as it’s the entry page for visitors, I use it as somewhere to put a couple of core Netvibes widgets.&lt;br /&gt;        &lt;/p&gt;&lt;h3&gt;Attention&lt;br /&gt;        &lt;/h3&gt;&lt;p&gt;This tab shows where BeGrand’s attention is focussed, what we’re interested in and where we’re looking. It pulls in our Google Reader shares, our bookmarks and the ‘clippings’ stream.&lt;br /&gt;        &lt;/p&gt;&lt;h3&gt;Activity&lt;br /&gt;        &lt;/h3&gt;&lt;p&gt;This tab pulls together what we’re up to and how we’re impacting the social media space. It embeds widgets for Twitter, Youtube, and Flickr as well as dropping in our full ‘zeitgeist’ stream.&lt;br /&gt;        &lt;/p&gt;&lt;h3&gt;Authorship&lt;br /&gt;        &lt;/h3&gt;&lt;p&gt;The final tab details our writings online, pulling in feeds from our blogs and the comment stream for BeGrand staff from Backtype.&lt;br /&gt;        &lt;/p&gt;&lt;h2&gt;&lt;span&gt;&lt;span&gt;Summary&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;/h2&gt;&lt;p&gt;Hopefully between these three views on our social media activity there’s something for everyone. We’ll see how it pans out as BeGrand launches and the volume increases. If anyone has any refinements I’m always interested in hearing how to improve our toolset.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://polis.ecafe.org/2011/04/creating-begrand-social-media-toolbox.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-6395811308259045261</guid><pubDate>Wed, 16 Apr 2008 22:20:00 +0000</pubDate><atom:updated>2008-04-17T21:00:21.753+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">information</category><category domain="http://www.blogger.com/atom/ns#">parenting</category><category domain="http://www.blogger.com/atom/ns#">social media</category><category domain="http://www.blogger.com/atom/ns#">youth</category><title>Parenting in the 21st century</title><description>I spent most of yesterday in London at the DCSF&#39;s Parenting in the 21st century event - another well run event from the department and Digital Public. The speaker line-up was well worth the trip with a great success story from Sally Russell at Netmums who is doing a wonderful job of raising awareness of non governmental organisations&#39; ability to bring parents together through social media, and achieve outcomes that still remain out of reach for many government run projects.&lt;br /&gt;&lt;br /&gt;It was interesting to hear that although Netmums seem to have very good relationships with government, they still hit the same barriers of access to government data sets and information, which many in the private sector believe they could add value to if only they were public. Hopefully Sally&#39;s involvement with the Power of Information group will move this issue along.&lt;br /&gt;&lt;br /&gt;Niel McLean from Becta was also on fine form, painting a convincing picture of the power of technology to revolutionise our schools system, and in particular the relationship between pupils, their parents and teachers. His ideas around the blurring of boundaries, between home and school, the roles of teachers and parents, and the worlds of work and home, through the use of inclusive and ubiquitous technology raises interesting questions around how schools should embrace technology at a process level rather than purely as a tool.&lt;br /&gt;&lt;br /&gt;In the breaks I caught up with Louise Derbyshire from Contact a Family, who&#39;s doing some very interesting work, supported by the parent know-how innovation fund, into the ways that social media can support parents of disabled children. Working through social networks and even Second Life she seems to be having significant success demonstrating the power of self-organising networks to provide high quality peer-to-peer support in this area, and I look forward to following the results of this project over the next few months.&lt;br /&gt;&lt;br /&gt;I also bumped into Mark Weber from Attic Media, who have been doing some great work for the DCSF in the last few years. Mark had an interesting point to make that the ability of young people to fully use the Internet is often over-egged, something that we&#39;ve seen ourselves in our research with young people who are often fairly limited in their exposure online to a small number of key websites and services (youtube, myspace, msn etc). It certainly seems to me that there is either a transition that happens in the late teens where the Internet expands from being purely a social tool to being an information resource that can be mined, or that there is a straightforward generational gap between us web 1.0 players who see the Internet through a library metaphor, and current crop of web 2.0 digital natives who experience it as social media.&lt;br /&gt;&lt;br /&gt;This is a question that needs further research since, as was pointed out at the conference, the young people of today are only ten years off becoming the parents of tomorrow and we need to start planning now for the support they&#39;ll need.</description><link>http://polis.ecafe.org/2008/04/parenting-in-21st-century.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-5701695407628258363</guid><pubDate>Fri, 04 Jan 2008 00:07:00 +0000</pubDate><atom:updated>2008-01-04T09:35:53.755+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dapper</category><category domain="http://www.blogger.com/atom/ns#">dataPortability</category><category domain="http://www.blogger.com/atom/ns#">jaiku</category><category domain="http://www.blogger.com/atom/ns#">lovefilm</category><category domain="http://www.blogger.com/atom/ns#">mashup</category><category domain="http://www.blogger.com/atom/ns#">pipes</category><title>A Lovefilm lifestream hack with Dapper and Pipes</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1bnvp1HMcFwV0xZoEvHk5T6UU-LNy5q9gyeTg4noOjXvJ1rvfeuLMy20KFJtQIAy2FiWZ-jFw9MpFYy2ofZVOPhzvQObL_DzASfhsw6sQSUxJsVihy2WQsYq3wFiAU1gSVvdG_Qyb1lE/s1600-h/lovefilm.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1bnvp1HMcFwV0xZoEvHk5T6UU-LNy5q9gyeTg4noOjXvJ1rvfeuLMy20KFJtQIAy2FiWZ-jFw9MpFYy2ofZVOPhzvQObL_DzASfhsw6sQSUxJsVihy2WQsYq3wFiAU1gSVvdG_Qyb1lE/s200/lovefilm.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5151415146533863074&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;So I&#39;m a big fan of &lt;a href=&quot;http://www.lovefilm.com/magqedx39/visitor/sign_up_1.html&quot;&gt;Lovefilm&lt;/a&gt; the online DVD rentals service. But for a while now I&#39;ve been reviewing and rating my moveis in Flixster because that is a more open system with outputs such as Facebook apps and Opensocial.&lt;br /&gt;&lt;br /&gt;This is less than ideal as I really should double-enter my ratings to ensure Lovefilm recommendations are accurate, so I was pleased to see that Lovefilm have launched a user public profile which allows you to publish some of your data to the world, see mine &lt;a href=&quot;http://www.lovefilm.com/profile/ennui2342&quot;&gt;here&lt;/a&gt;. However, as is so often the case the way the data isn&#39;t &lt;a href=&quot;http://www.dataportability.org/&quot;&gt;portable&lt;/a&gt;, so I used it as an opportunity to try out a new service I&#39;d heard about called &lt;a href=&quot;http://www.dapper.net/&quot;&gt;Dapper&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I&#39;d come across Dapper when they spoke at &lt;a href=&quot;http://www.slideshare.net/carsonified/practical-semantic-web&quot;&gt;FOWA&lt;/a&gt; this year and have had them on my list to try out ever since. Dapper is enssentially screen scraping software, which allows you to feed it some example pages which it then pulls apart to work out what is content that you might want to repurpose. It&#39;s a very nicely built web application with huge potential given the output formats (XML, RSS, Netvibes, flash widgets to name a few). So I booted it up and fed it my Lovefilm profile page.&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpHo0MRso9u92FDacAwkHa40S1do2LmDtQNTnrALoPJwIC6jxtFRK7dCt-QiNiUpMLH4kcWjnZfneslzYvRAznm5D98cwhnLgLV2ISML-dqJE0pyKZVZSPD4vSd9Y2CU_lYW-Yc4yS9cw/s1600-h/ScreenshotProxy.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpHo0MRso9u92FDacAwkHa40S1do2LmDtQNTnrALoPJwIC6jxtFRK7dCt-QiNiUpMLH4kcWjnZfneslzYvRAznm5D98cwhnLgLV2ISML-dqJE0pyKZVZSPD4vSd9Y2CU_lYW-Yc4yS9cw/s200/ScreenshotProxy.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5151415391346998962&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;My first hurdle was that I had difficulty getting it to recognise certain parts of the page as content chunks. It couldn&#39;t grab the review separately from the list of stars and director, so in the end I have a little more information in the RSS description than I would have liked, I&#39;m guessing this is down to how well the HTML is written. My second issue was that with the RSS option enabled it only allowed me to link data to the fields; title, description and pubdate. I was keen to take the movie artwork in as an RSS enclosure, so I went back and switch to XML output and just grabbed everything into an XML file. After bit of neatening up my finished &#39;Dap&#39; was ready and &lt;a href=&quot;http://www.dapper.net/dapp-howto-use.php?dappName=Lovefilmreviews&quot;&gt;published&lt;/a&gt;.&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMYnFBGgzTibMVb6FCaBbwjCpPn7F0i75dJmvP3EUtVoo3qG0YuGlRyYKxT7h-TVyZiz8Jq7dLC-mPDTHHTnVY-jJePC0L1yGq8kbx1_Q-V0uOYXeGDnEY8Qg7tW0Sx9R7M6kPlfcDDu4/s1600-h/pipes.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMYnFBGgzTibMVb6FCaBbwjCpPn7F0i75dJmvP3EUtVoo3qG0YuGlRyYKxT7h-TVyZiz8Jq7dLC-mPDTHHTnVY-jJePC0L1yGq8kbx1_Q-V0uOYXeGDnEY8Qg7tW0Sx9R7M6kPlfcDDu4/s200/pipes.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5151416220275687106&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;After my Dap was finished I wanted to clean things up and sort out the enclosure. So I jumped over to &lt;a href=&quot;http://pipes.yahoo.com/&quot;&gt;Yahoo! Pipes&lt;/a&gt; and took in the XML output, renamed a few fields and performed some regex&#39;s so that everything was how I wanted it. The final RSS feed output can be seen &lt;a href=&quot;http://pipes.yahoo.com/pipes/pipe.info?_id=_ARYe1a63BGjPDW_ouNLYQ&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Finally I wanted to get that into my lifestream. Currently I&#39;m&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjChO4ooK1NhITdC-8VsKBST6I-c3HsC3kVanB5wH9LeVM-ptaU3J3AVnMMEmYxwke3Aj89ppKwFSdywW1HXsa7BmjOjFgtkayJdAhg8xbwiIHp1p4GWgnM14Ic_azx2v6ZnxdXD__cWTQ/s1600-h/jaiku.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjChO4ooK1NhITdC-8VsKBST6I-c3HsC3kVanB5wH9LeVM-ptaU3J3AVnMMEmYxwke3Aj89ppKwFSdywW1HXsa7BmjOjFgtkayJdAhg8xbwiIHp1p4GWgnM14Ic_azx2v6ZnxdXD__cWTQ/s320/jaiku.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5151417848068292338&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; using &lt;a href=&quot;http://ennui2342.jaiku.com/&quot;&gt;Jaiku&lt;/a&gt; for this purpose, so I jumped over and added in the new RSS feed which in short order appeared nicely into my stream with my first review. As I use this to wire updates into&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4wb_4k1jDYLghTyWe5PO2LUesu2-X5Fh64y5lvKexHwopPVcDZuffl9P7SCplfaK5JVmeu7pOwzLGN0P6z4gTanSqYJUkEztLgPMfKz83r-kOF42Ew8Xeafodjk29bqvTA8n5JT49PSw/s1600-h/facebook.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4wb_4k1jDYLghTyWe5PO2LUesu2-X5Fh64y5lvKexHwopPVcDZuffl9P7SCplfaK5JVmeu7pOwzLGN0P6z4gTanSqYJUkEztLgPMfKz83r-kOF42Ew8Xeafodjk29bqvTA8n5JT49PSw/s200/facebook.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5151419669134425874&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; other systems (e.g. through the Jaiku app in Facebook), my new review quickly perculated into my social network.&lt;/div&gt;&lt;br /&gt;Overall this probably took me two hours to setup, but a lot of that was learning and fiddling around the edges. Dapper is certainly a very powerful tool and combined with the more programmatic functionality of Yahoo! Pipes, which allows me to start making my locked up information more portable. The one restriction at the moment is the current inability to automate any logins, so if you don&#39;t have a shortcut private URL for your data you&#39;re out of luck on an automated login. I think this is possibly an opportunity for OpenId in the future.</description><link>http://polis.ecafe.org/2008/01/lovefilm-lifestream-hack-with-dapper.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1bnvp1HMcFwV0xZoEvHk5T6UU-LNy5q9gyeTg4noOjXvJ1rvfeuLMy20KFJtQIAy2FiWZ-jFw9MpFYy2ofZVOPhzvQObL_DzASfhsw6sQSUxJsVihy2WQsYq3wFiAU1gSVvdG_Qyb1lE/s72-c/lovefilm.JPG" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-7116798830094766366</guid><pubDate>Fri, 16 Nov 2007 01:03:00 +0000</pubDate><atom:updated>2007-12-20T00:42:34.165+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dataPortability</category><category domain="http://www.blogger.com/atom/ns#">digital identity</category><category domain="http://www.blogger.com/atom/ns#">social software</category><category domain="http://www.blogger.com/atom/ns#">web 2.0</category><title>The web2.0 stack</title><description>There has been considerable activity on standards around the web2.0 software stack in recent weeks, and this year&#39;s conferences had had little else to talk about. Here&#39;s my take on the current state of play:&lt;br /&gt;&lt;br /&gt;To start with there&#39;s &lt;a href=&quot;http://ennui2342.jaiku.com/&quot;&gt;my lifestream&lt;/a&gt; published with &lt;a href=&quot;http://www.jaiku.com/&quot;&gt;Jaiku &lt;/a&gt;- my digital footprint which encompasses blog posts I&#39;m sharing (&lt;a href=&quot;http://www.google.com/reader/&quot;&gt;google reader&lt;/a&gt;), comments I&#39;ve made (&lt;a href=&quot;http://www.cocomment.com/&quot;&gt;coComments&lt;/a&gt;), sites I&#39;ve bookmarked (&lt;a href=&quot;http://del.icio.us/&quot;&gt;del.icio.us&lt;/a&gt;), location and presense updates. This information gives a view on my attention and is ideal for marking up with &lt;a href=&quot;http://en.wikipedia.org/wiki/APML&quot;&gt;APML &lt;/a&gt;for intelligent reuse around the web.&lt;br /&gt;&lt;br /&gt;Then there&#39;s information I want to publish and synidcate out such as events I&#39;m attending (&lt;a href=&quot;http://www.upcoming.org/&quot;&gt;upcoming&lt;/a&gt;), places I&#39;ll be (&lt;a href=&quot;http://www.dopplr.com/&quot;&gt;dopplr&lt;/a&gt;), photos I&#39;ve uploaded (&lt;a href=&quot;http://www.flickr.com/&quot;&gt;flickr&lt;/a&gt;), blog posts written (&lt;a href=&quot;http://www.blogger.com/&quot;&gt;blogger&lt;/a&gt;), videos uploaded (&lt;a href=&quot;http://www.youtube.com/&quot;&gt;YouTube&lt;/a&gt;). This is more static information, content I&#39;ve created, which is generally feed based through standards such as RSS or iCal and can be proxied through services such as &lt;a href=&quot;http://www.feedburner.com/&quot;&gt;feedburner &lt;/a&gt;to overlay analytics.&lt;br /&gt;&lt;br /&gt;To pull all this together I need a concept of identity (&lt;a href=&quot;http://openid.net/&quot;&gt;OpenId &lt;/a&gt;through &lt;a href=&quot;http://claimid.com/&quot;&gt;ClaimId&lt;/a&gt;) and cross site authorisation (&lt;a href=&quot;http://oauth.net/&quot;&gt;oAuth&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Finally I want to share all this with my social graph, which I need to define with &lt;a href=&quot;http://microformats.org/&quot;&gt;microformats &lt;/a&gt;such as &lt;a href=&quot;http://www.gmpg.org/xfn/&quot;&gt;xfn &lt;/a&gt;and &lt;a href=&quot;http://microformats.org/wiki/hcard&quot;&gt;hCard&lt;/a&gt;, deliver the content to container sites such as social networks through Google&#39;s recent &lt;a href=&quot;http://code.google.com/apis/opensocial/&quot;&gt;OpenSocial &lt;/a&gt;and make it platform agnostic with widget apis such as netvibes&#39; &lt;a href=&quot;http://dev.netvibes.com/&quot;&gt;UWA&lt;/a&gt;. This is the standards coalface where the apis are still being cut, a few months from now we&#39;ll see the first fruits of this work as the major social software players being to support these standards.&lt;br /&gt;&lt;br /&gt;This slew of technologies and web applications almost fits together into a portable digital presence spread across the net and integrated with my social graph. With a bit of hard work its with us today, and tomorrow it will extend even further onto my mobile through Google&#39;s &lt;a href=&quot;http://code.google.com/android/&quot;&gt;Android&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Exciting times for web2.0 developers.</description><link>http://polis.ecafe.org/2007/11/web20-stack.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-2116265436639119346</guid><pubDate>Thu, 11 Oct 2007 20:57:00 +0000</pubDate><atom:updated>2007-10-11T23:11:35.166+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">design</category><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">methodologies</category><title>The agile approach</title><description>It seems that every conference I have attended this year has had several speakers passionately advocating an agile approach to web application development, something that a few years ago was the preserve of an evangelical geek sub-culture, now seems to have hit the mainstream with the next generation of Internet entrepreneurs.&lt;br /&gt;&lt;br /&gt;I believe this is partly due to a shift in perspective, from seeing the web primarily as a data repository where the discipline of information architecture has primacy, to a vision of the web as an application platform which forces us to draw more heavily on interaction design and usability concerns in our designs. This has naturally favoured a shift towards development methodologies that focus on the user experience and which exploit usability testing to explore this realm.&lt;br /&gt;&lt;br /&gt;Agile methodologies seem to align very well with the web 2.0 philosophy, centring around the customer as an integral part of the development process and allowing projects to evolve through usability testing and customer feedback rather than being up-front requirements driven. Agile also supports the rapid turnaround needed for web development, dovetailing effectively with the &#39;beta&#39; culture and the drive to be first to market and hence to establish dominant market share. What would be difficult to implement in other businesses of packaged software development or critical b2b systems, is in its element with b2c projects over the Internet where rapid feedback and a &#39;release often&#39; philosophy are underpinning a successful model of RAD development.&lt;br /&gt;&lt;br /&gt;Partly this success seems also to be supported by the rise of a number mature web development frameworks such as Rails, often based around the MVC pattern, which support rapid prototyping and an approach which leverages the strengths of the HTTP protocol rather than necessitating reinvention (every web developer should be forced to read &lt;a href=&quot;http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FRESTful-Web-Services-Leonard-Richardson%2Fdp%2F0596529260%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1192139714%26sr%3D8-1&amp;amp;tag=moratgames-21&amp;amp;linkCode=ur2&amp;amp;camp=1634&amp;amp;creative=6738&quot;&gt;RESTful web services&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.co.uk/e/ir?t=moratgames-21&amp;amp;l=ur2&amp;amp;o=2&quot; alt=&quot;&quot; style=&quot;border: medium none  ! important; margin: 0px ! important;&quot; border=&quot;0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt; before developing any web app). This is all the more interesting for me in my work as we run a Microsoft stack throughout which is only now seeking to &lt;a href=&quot;http://www.hanselman.com/blog/ScottGuMVCPresentationAndScottHaScreencastFromALTNETConference.aspx&quot;&gt;replicate this success&lt;/a&gt; within the .Net framework and is certainly aligned more with SOAP than REST.&lt;br /&gt;&lt;br /&gt;Over the past few months my development team have been rolling their own agile methodology, combining elements from several sources but most closely aligned to extreme programming. This approach is now having its first outing to deliver a social networking project (currently in stealth mode) which we&#39;re due to launch at the start of next year. I will be acting as the customer proxy during development and will try and blog my learning from the inside as we give the new system a spin. Iteration one was this week and tomorrow will see our first bullpen as we evaluate the outputs and see how we&#39;ve faired. I&#39;ll let you know how it goes...</description><link>http://polis.ecafe.org/2007/10/agile-approach.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-3579622294082069245</guid><pubDate>Wed, 13 Jun 2007 19:26:00 +0000</pubDate><atom:updated>2007-06-14T00:18:46.501+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">facebook</category><category domain="http://www.blogger.com/atom/ns#">social software</category><category domain="http://www.blogger.com/atom/ns#">syndication</category><category domain="http://www.blogger.com/atom/ns#">web 2.0</category><category domain="http://www.blogger.com/atom/ns#">widgets</category><title>Adventures in web 2.0</title><description>Lately I&#39;ve been doing some research into the current state of the art in the resurgent Internet economy. In particular I&#39;ve been experimenting around the web 2.0 community, a  concept I&#39;ve previously had doubts about, relegating it to the overflowing dustbin of hyped concepts alongside &#39;push technology&#39;.&lt;br /&gt;&lt;br /&gt;However, after several weeks spent repeatedly entering my profile into every site that will have me, I have to say something is emerging from the pastel colours and ubiquitous tag clouds that captures my interest. I&#39;m beginning believe there really is something to it, a new zeitgeist which genuinely does have substance. Even the economics seem more sustainable with many web 2.0 companies exiting through acquisitions rather than through the over-hyped IPOs of the first bubble.&lt;br /&gt;&lt;br /&gt;In particular two trends have particularly caught my eye. The first is the rise of the widget companies; technologically nothing new - personalisation through the use of web page components and gadgets has been around for at least a decade. However, the key difference here is the move from personalisation around a single portal, to network personalisation through multi-site syndication. User generated content that was once trapped within sites dealing within a specific verticals such as photos, is now freely accessible through a multitude of front-ends through the use of widgets.&lt;br /&gt;&lt;br /&gt;This was the promise that syndication standards such as RSS have failed to keep up with, leading unfortunately to an abandonment of standards in favour of presentation. Where RSS still dominates in textural content supporting aggregation through tools such as readers, widgets are inherently presentational delivering rich media content beyond RSS, but in a way that is inherently difficult to aggregate. It is interesting to see the rise of services such as &lt;a href=&quot;http://www.feedburner.com/&quot;&gt;Feedburner&lt;/a&gt; that are taking up the challenge to integrate these streams together, providing ways to encapsulate rich media within the constraints of RSS.&lt;br /&gt;&lt;br /&gt;Secondly, the opening up of the &lt;a href=&quot;http://www.techcrunch.com/2007/05/27/myspace-v-facebook-its-not-a-decision-its-an-iq-test/&quot;&gt;Facebook Platform&lt;/a&gt; to third parties to develop applications upon is of major significance. With a stated goal of creating a social software operating system for the web, Facebook has certainly latched on to something with great potential.&lt;br /&gt;&lt;br /&gt;After registering and linking up with friends, filling in my profile and joining a few groups, I found myself wondering what I&#39;m supposed to &lt;span style=&quot;font-style: italic;&quot;&gt;do&lt;/span&gt; on Facebook. I seem to spend many hours fiddling whilst not achieving very much, keeping track of what everyone else is doing and essentially killing time quite unproductively. However, when I look at Facebook as an underlying infrastructure for building a network, upon which applications can be layered, it suddenly becomes much more of an attractive proposition. If Facebook can match the explosion of development within its borders with an adoption of is core concepts of identity, profile, presence and network in external applications then I think it can achieve its aim.&lt;br /&gt;&lt;br /&gt;This leads to the coming conflict - on the one hand you have a closed network of friends producing content within applications built upon the Facebook platform, primarily local, but with a number of external integrations such as the movie site &lt;a href=&quot;http://www.flixster.com/&quot;&gt;Flixster&lt;/a&gt;. On the other side you have specialist verticals such as &lt;a href=&quot;http://www.flickr.com/&quot;&gt;Flickr&lt;/a&gt; doing a much better job within their narrow focus, syndicating content, via widgets, through open forums such as the blogosphere. Currently I have to choose - do I manage my photos in Facebook and get the advantages of the the network but no visibility beyond it, or do I manage them in Flickr with better tools, open syndication, but a duplicate profile and an inferior network?&lt;br /&gt;&lt;br /&gt;Two social perspectives seem to be developing, on the one hand you have the individual; their restricted profile, their closed network and around that a whole host of information, on the other you have the blogosphere; content focused, open, surrounded by that same web of information. These don&#39;t need to be exclusive if they both build on the power of the specialists; rather than looking at the Facebook platform as an opportunity to build an application within Facebook, look at it as an integration platform that allows specialist environments to be syndicated into a successful network-centric environment, and use that network platform as an infrastructure component for those specialist sites (Flixster does this close integration well).&lt;br /&gt;&lt;br /&gt;Finally here&#39;s the roll call of the sites which have kept me occupied while exploring these concepts: social networks by &lt;a href=&quot;http://www.facebook.com/&quot;&gt;Facebook&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/&quot;&gt;Linkedin&lt;/a&gt;, blog by &lt;a href=&quot;http://www.blogger.com/&quot;&gt;Blogger&lt;/a&gt;, syndication by &lt;a href=&quot;http://www.feedburner.com/&quot;&gt;Feedburner&lt;/a&gt;, social bookmarking by &lt;a href=&quot;http://del.icio.us/&quot;&gt;Del.icio.us&lt;/a&gt; and &lt;a href=&quot;http://www.addthis.com/&quot;&gt;Addthis!&lt;/a&gt;,  events by &lt;a href=&quot;http://www.upcoming.org/&quot;&gt;Upcoming.org&lt;/a&gt;,  images by &lt;a href=&quot;http://www.flickr.com/&quot;&gt;Flickr&lt;/a&gt;,  movies by &lt;a href=&quot;http://www.flixster.com/&quot;&gt;Flixster&lt;/a&gt;,  videos by &lt;a href=&quot;http://www.youtube.com/&quot;&gt;YouTube&lt;/a&gt;. You&#39;ll notice that almost all of these are now owned by either Yahoo! or Google.</description><link>http://polis.ecafe.org/2007/06/adventures-in-web-20.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-6957247193555839671</guid><pubDate>Tue, 05 Jun 2007 20:37:00 +0000</pubDate><atom:updated>2007-06-07T07:36:29.175+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">design</category><category domain="http://www.blogger.com/atom/ns#">hci</category><category domain="http://www.blogger.com/atom/ns#">innovation</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">surface computing</category><title>Surface computing</title><description>A couple of days ago I picked up this video from &lt;a href=&quot;http://www.techcrunch.com/&quot;&gt;TechCrunch&lt;/a&gt; demonstrating Microsoft&#39;s new surface computing product. Surface computing is an admirable attempt to deconstruct the prevalent user interface paradigm and introduce more natural human computer interfaces into our everyday lives. The video is certainly impressive, reminiscent of &lt;a href=&quot;http://www.imdb.com/title/tt0181689/&quot;&gt;Minority Report&#39;s&lt;/a&gt; gestural interfaces, with seamless integration with mobile devices.&lt;br /&gt;&lt;br /&gt;Certainly when I&#39;ve given these kind of interfaces a go on traditional computers, I&#39;ve initially been impressed by the eye-candy, but have soon reverted to the traditional interface for quickly and easily performing everyday tasks. However, when you move away from power-users, and workhorse tasks, these interfaces could genuinely lower the barriers of technology - I can see my parents managing their digital photos on such a platform, whereas I dispair of them ever emptying their SDcard currently.&lt;br /&gt;&lt;br /&gt;More importantly, in the long term such interfaces will become vital as embedded computing becomes more ubiquitous. When your clothes have embedded CPUs and you carry your &lt;a href=&quot;http://en.wikipedia.org/wiki/Personal_area_network&quot;&gt;personal area network&lt;/a&gt; with you, interfaces will need to evolve beyond windows and menus. It&#39;s reassuring to see that Microsoft of all companies, is thinking outside the box here and is going beyond just embedding a computer in a table (think the failed promise of kiosks) to produce something which delivers us new interactions and sets us thinking that maybe we&#39;ve all been lured into a dead-end &lt;a href=&quot;http://en.wikipedia.org/wiki/Maxima_and_minima&quot;&gt;local maxima&lt;/a&gt; of interface design centred around the diminishing returns from the refinement of windows, menus and more recently ribbons. The field is wide open for innovative ideas to become tomorrows de-facto standards; just maybe this product could herald the start of some real progress in interface design after years of stagnation.&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/e4DSS4XPmVs&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/e4DSS4XPmVs&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</description><link>http://polis.ecafe.org/2007/06/surface-computing.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-7260413999200985782</guid><pubDate>Tue, 29 May 2007 23:22:00 +0000</pubDate><atom:updated>2007-05-30T00:57:26.028+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">books</category><category domain="http://www.blogger.com/atom/ns#">business</category><category domain="http://www.blogger.com/atom/ns#">innovation</category><category domain="http://www.blogger.com/atom/ns#">moore</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><title>The 14 faces of innovation</title><description>&lt;iframe src=&quot;http://rcm-uk.amazon.co.uk/e/cm?t=moratgames-21&amp;o=2&amp;amp;p=8&amp;l=as1&amp;amp;asins=1841127175&amp;fc1=000000&amp;amp;IS2=1&amp;lt1=_blank&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lc1=0000FF&amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;f=ifr&quot; style=&quot;width: 120px; height: 240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; align=&quot;right&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Over my holidays I managed to find time to get through Moore&#39;s latest book focussing on innovation. In my opinion this is by far the best of his works; much more applicable to the everyday SME with a practical methodology to underpin the theory.&lt;br /&gt;&lt;br /&gt;One of the difficult areas for most companies is to understand their existing products and determine how to innovate around them. As Moore details, it is usual to see a scatter gun approach of competing brand themes which don&#39;t come together into a strong identity. Moore advocates an analysis based upon his familier technology lifecycle model, but tying in 14 varied types of innovation. For each product a company should be majoring on a type of innovation which is appropriate to its place on the lifecycle.&lt;br /&gt;&lt;br /&gt;It&#39;s a very compelling book, bursting with examples whilst still being easy to read. I&#39;ll let you know how the methodology fares after I&#39;ve given it a run.</description><link>http://polis.ecafe.org/2007/05/14-faces-of-innovation.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4892996946950136827.post-8030359060804666035</guid><pubDate>Fri, 25 May 2007 21:03:00 +0000</pubDate><atom:updated>2007-06-01T01:18:32.157+01:00</atom:updated><title>New blog</title><description>Probably the last thing &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Internet&lt;/span&gt; needs is another blog. However, in my ongoing quest to at least make a start on some creative writing I am hoping that a blog will exercise the right parts of my brain to trigger more substantial output.&lt;br /&gt;&lt;br /&gt;Expect me to cover technology, the realities of parenthood, politics, science fiction and anything else which piques my interest.</description><link>http://polis.ecafe.org/2007/05/new-blog.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>2</thr:total></item></channel></rss>