Oct
24

Wardley Maps

At a work event last week, I was pleased to see a slot about Wardley Maps, a technique that I’ve been reading about for a while. Wardley Maps can be used to help understand systems in a different way than just as boxes linked with lines, by including x/y axes to position each component based on its evolution and position in the value chain.

This allows a better visualisation of the makeup of they system and in particular which bits are novel and well suited to agile, and which are commoditised where a waterfall or ‘as as Service’ approach may suit better. The primary intention is for companies engaged in strategic play to consider how their product compares with competitors to then plan competitive moves, understanding the points are where they are more commodified than the competition and can attack on pricing, or open source something to disrupt the market etc. but in generally its a useful tool for understanding the landscape.

These maps have been pioneered by Simon Wardley and are being enthusiastically adopted by organisations including GDS. They are often known as Wardley Maps.

Simon’s blog is a very interesting read. A few posts for further reading:

As an aside he is quite impressed with IBM’s recent strategic play

And here’s a couple of example Wardley Maps to be going on with:

Mar
25

Transport for London on Apps vs. Websites and APIs

A recurring question is whether to have a mobile app, or a mobile friendly website or both. The view from the Government Digital Service is that the most important thing is to have a mobile friendly website using responsive design.

“Stand-alone mobile apps will only be considered once the core web service works well on mobile devices, and if specifically agreed with the Cabinet Office.and only to approve use of apps”.

Similarly, Transport for London (TFL) have recently posted about how they haven’t created apps, but instead have a mobile friendly website and also make their data available using APIs (Application Programming Interfaces). These APIs allow TFL’s data to be used by private companies and individuals who have created over 200 apps using this data; much more than TFL would have had the resources or inclination to create.

They’ve followed the principles of open data:

“Why open data?
• It’s public data – as a public body, our data is publically owned.
• To extend reach – ensuring as many people as possible have the widest possible access to travel information.
• For best use of the transport network – enabling choice of the most effective journeys.
• Economic benefit – the small companies who make apps with our data generate highly skilled jobs and wealth.
• Innovation – thousands of developers work on designing and building apps with our data, meaning great innovation emerges”

TFL acknowledge that the private sector will cherry-pick the easiest and most profitable apps, so they then use their website to provide a fully comprehensive set of information that is available to anyone with a web-browser, regardless of whether they have a smartphone or not.

This combination of open data via APIs to encourage private sector innovation and a comprehensive mobile friendly website to provide an overall service to all users seems like a pragmatic approach, is in keeping with the Government mobile strategy and hopefully provides food for thought for public sector (and indeed all large organisations where the ‘crowd’ will help to create innovative apps) when creating their own mobile strategies.

Mar
16

The HTML 5 anchor tag: download attribute

The humble anchor tag. It’s the lynchpin of the web, allowing links between pages. Surely there’s nothing to improve here?

Well, one problem I encountered today is how to put a link to a resource (mp3, pdf or similar) and make sure that when the link is clicked it isn’t rendered in the browser but instead is downloaded. It turns out that HTML5 allows us to do just that, by adding the download attribute to the link. If the attribute is set to a value, that will be the filename of the download.

To force a download:

<a href="myfile.pdf" download>Download your file</a>

To set a filename:

<a href="myfile.pdf" download="mydownloadedfilename.pdf>Download your file</a>

Mar
15

More on Microservices – Martin Fowler article

Martin Fowler expands on what a microservices architecture is all about.

A lot of the concepts are similar to SOA, so I’m gradually trying to understand what the practical and philosophical differences (and similarities) are. Here’s one:

When building communication structures between different processes, we’ve seen many products and approaches that stress putting significant smarts into the communication mechanism itself. A good example of this is the Enterprise Service Bus (ESB), where ESB products often include sophisticated facilities for message routing, choreography, transformation, and applying business rules.

The microservice community favours an alternative approach: smart endpoints and dumb pipes. Applications built from microservices aim to be as decoupled and as cohesive as possible – they own their own domain logic and act more as filters in the classical Unix sense – receiving a request, applying logic as appropriate and producing a response. These are choreographed using simple RESTish protocols rather than complex protocols such as WS-Choreography or BPEL or orchestration by a central tool.

Also I’ve been pondering services granularity and RPC vs the coarse grained calls of SOA. In this regard microservices seem closer to the SOA approach if anything:

In a monolith, the components are executing in-process and communication between them is via either method invocation or function call. The biggest issue in changing a monolith into microservices lies in changing the communication pattern. A naive conversion from in-memory method calls to RPC leads to chatty communications which don’t perform well. Instead you need to replace the fine-graining communication with a coarser -grained approach.

Are microservices made of the clear design principles of SOA but without all the heavyweight implementation details of SOAP, WS* standards, XML and all the rest of it. More reading needed!

Mar
12

Microservices by Paul Downey at GDS

Paul Downey at the Government Digital Service shares a interesting and visually appealing view of a proposed microservices architecture. The mix of web, APIs and systems of records looks sensible to me. Funny how we’ve gone from fine-grained RPC style webservice calls, to the coarse-grained services of SOA, back to ‘microservices‘ over the course of a few years (at least where I work …).

I do find myself wondering if the business function of the services that are exposed in a micro-architecture is actually much different from a well defined SOA service. Either way, being freed from the painful overhead of SOAP / WS-standards surely makes it much easier to contemplate building or integrating with a microservices architecture!

Microservice architecture

Oct
08

Unilever sustainability statement


via

An impressive environmental statement from Paul Polman, CEO of Unilever, muses on the limitations of our current capitalist approach and considers how we can sustainably build on this.

Unilever have stopped quarterly reporting of results, the drumbeat the dictates the short-termist march of the modern American corporation. They also claim to have changed from the relentless focus on shareholder value to satisfying “the demands of consumers and customers and to serve the needs of the communities where we operate”.

They close with a call to arms to other businesses to follow their lead. Impressive stuff indeed.

The Guardian also have an interview with Paul Polman exploring these themes.

In these days of the 99%, a growing equality gap, short-term outlooks in business preventing long term strategic thinking and wider sustainability challenges around resources and energy, this is encouraging to see. I hope these words are backed by actions, that the market doesn’t crucify them, and that other companies are brave enough to be the first followers

Oct
06

Installing IBM Worklight 6.0 on Windows 7

I installed IBM Worklight 6.0 following the instructions on the IBM Worklight installation page

Generally my focus is on web-development and on delivering a ‘one web‘ experience using responsive design to allow a website to adapt to whatever device is accessing it (N.B. the one web article is great, make sure to read it at least once!). I do recognise that there are cases where ‘mobile apps’ are preferred either for access to device features, offline behaviour or just because that is what the customer wants.

In these cases I’d rather create a hybrid app that is basically using my familiar web-technology such as HTML, CSS and Javascript, but running in a container, rather than create a native application. This allows the app to be much more portable to other platforms and also saves me from having to learn several more languages and technology stacks. IBM Worklight is a product for creating these kind of hybrid applications, building upon the Apache Cordova / Phonegap technology, so this seems like a good choice of platform to experiment with hybrid apps. Disclaimer – I work for IBM.

The instructions were mostly simple and straightforward, but I hit a couple of unexpected errors, so I thought it was worth noting them in this post.

First of all you need to download the correct version of Eclipse. It needs to be Juno 4.2.2, and it needs to be SR2. The eclipse download page when you click on Juno first of all shows only SR1 downloads which is really confusing. This led to errors later on when trying to install Worklight. This is the link you need: Download Eclipse Juno SR2 and then you want ‘Eclipse IDE for Java EE Developers’.

Eclipse then doesn’t need installing, once downloaded it just needs to be unzipped to a directory and you run the .exe to launch it. You do need to have a Java runtime or SDK installed in order to run Eclipse. One of my PCs I didn’t have to do anything here, for the other I installed the Java 7 SDK from the Oracle website

The Eclipse Marketplace allows you to install Worklight. Once Eclipse is running, go to Help -> Eclipse Marketplace, Search for Worklight and click install.

At first I got the error below about dependencies. This is the same error I got when using Eclipse SR1. This time it seemed to be caused because I had put Eclipse in a directory that needed admin access (C:\Program Files\). Once I moved it to a different directory in a less protected location the installation then went fine. I was then able to move onto the tutorials on the IBM site to get the traditional HelloWorld application running.

This is the error I got both when using Eclipse SR1 and when I had Eclipse in a directory that needed admin rights:

Cannot complete the install because of a conflicting dependency.
  Software being installed: IBM jQuery Mobile Tools 6.0.0.201309262019 (com.ibm.webtools.jquery.tools.feature.feature.group 6.0.0.201309262019)
  Software currently installed: Eclipse IDE for Java EE Developers 1.5.1.20120917-1257 (epp.package.jee 1.5.1.20120917-1257)
  Only one of the following can be installed at once: 
    Eclipse UI 3.103.0.v20120521-2329 (org.eclipse.ui 3.103.0.v20120521-2329)
    Eclipse UI 3.103.0.v20120705-114351 (org.eclipse.ui 3.103.0.v20120705-114351)
    Eclipse UI 3.104.0.v20121024-145224 (org.eclipse.ui 3.104.0.v20121024-145224)
  Cannot satisfy dependency:
    From: Rich Page Editor - jQuery extensions 2.0.0.v20130523_1421 (com.ibm.etools.rpe.jquery 2.0.0.v20130523_1421)
    To: bundle com.ibm.etools.rpe.mobile.patterns [1.0.0,2.0.0)
  Cannot satisfy dependency:
    From: Mobile Patterns 1.0.0.v20130508_1207 (com.ibm.etools.rpe.mobile.patterns 1.0.0.v20130508_1207)
    To: bundle org.eclipse.ui [3.104.0,4.0.0)
  Cannot satisfy dependency:
    From: jQuery Web Tools 1.0.100.v20130523_1421 (com.ibm.webtools.jquery.feature.feature.group 1.0.100.v20130523_1421)

Sep
09

Quit dreaming big and start achieving


via @zeldman

A great article
on the always reliable A List Apart on how to achieve your aims, rather than being deterred by over-ambitious goals. The to it all, paraphrasing it to keep the carrot just far enough in front of you to keep on moving onwards and upwards. Set a target that’s just about manageable if you stretch yourself a bit, achieve it, rinse and repeat.

The article includes a great example of Nishant Kothary’s experiences on the Internet Explorer team. At the time, I noticed and was impressed with the improvements in community engagement from the team: it’s interesting to hear the inside track on it.

Sep
03

The Microsoft/Nokia deal visualised

Microsoft and Nokia have a tiny slice of the mobile market at presentThe recent Microsoft acquisition of Nokia’s device division is visualised in this diagram by Luke Millar, which shows just how small a piece of the mobile pie this deal covers.

That said I think this acquisition has legs, especially with Microsoft’s recently discovered design ethic. I know several influential ‘creative’ types that are pretty excited with their Nokia Lumia, and this kind of flag-waving can go a long way. Additionally, big companies generally have a preference for devices that best integrate with their existing security and software set (read Microsoft), so I see this as a growth area too.

From small seeds, big trees can grow and I wouldn’t write Microsoft off just yet.

Sep
02

How to detect a touchscreen


via http://twitter.com/rainypixels

Discussion on StackOverflow about how to detect a touchscreen

The discussion begins with using the Modernizr library, which tests for touch events in the browser; but notes that since Windows 8 was released some browsers have been erroneously reporting touch support. A number of other alternatives are under discussion.

Best latest version appears to be:

function is_touch_device() {
  return 'ontouchstart' in window // works on most browsers 
      || 'onmsgesturechange' in window; // works on ie10
};

Older posts «