Sunday, 29 December 2013

The Hobbit: The Desolation of Smaug Review

J.R.R. Tolkien must be turning in his grave.

I came away from seeing The Hobbit: The Desolation of Smaug (in a stifling Odeon IMA) in several minds.  It’s true that only about 25% of the film followed the original story and there were a number of scenes that left out detail that could have been included, such as the encounter with Beorn, Bilbo taunting the spiders in Merkwood and Bilbo putting the lids on the barrels before the dwarves are pushed through a hatch into the river by the Wood Elves. Maybe some of these will be featured in the extended edition. I’m also struggling with the fact that there were no Orcs in the book either, just goblins.

After the first thirty minutes I stopped being annoyed and started trying to see the film as a film, rather than as an adaptation of a book. And then it occurred to me that although the Hobbit is an excellent book, it’s quite a simple story and may not translated directly into a film well. Although the film felt unnecessarily long, a lot of the story that was added (invented?) made it excellent. The plot line about Sauron gaining strength is exactly what should have been in the book, it makes for better continuity with the Lord of the Rings. It is of course possible that Tolkien wrote about it, and Gandalfs involvement in other books like The Silmarillion. I don’t know, I haven’t read them, but it did make me think that I would like Peter Jackson to go on and make more of Tolkien’s work into films.

Having said that, the fight scene in the lonely mountain added nothing for me, except more original plot discrepancies. They may as well have put Kili in a red star trek shirt in the Wood Elves prison and I don’t recall any of the dwarves staying behind in Lake Town in the book or any special bowes. And did I mention there weren’t any Orcs in the book? There weren’t many (any?) women in the book either, but I totally fell in love with Tauriel.

I was glad when the film was over, only because it was so long, but I want to see it again.

Wednesday, 4 December 2013

Norfolk Tech Journal: Second Issue Out Now!

Trite as it may sound, I moved to Norfolk for love. I was working in London to pay for a flat in Colchester which I wanted because it was an easy commute to my job in London. My girlfriend, however, lived in Norfolk and I was travelling to see her every weekend. Clearly, the only logical move was to get a second mortgage, based on my London salary; jack in my job the instant that mortgage cleared and move to Cromer with two mortgages, no income and no job lined up.

My thinking at the time was that my wife (a zoo keeper) would find it hard to find work if she moved and I (as a senior java developer with years of banking experience, plus the conceit that that brings) would simply walk into a development job. I had overlooked one tiny detail: there are only about 8 Java shops in Norfolk. It was sheer luck more than anything else that landed me my current role.

I’m not sure if the dearth of Java jobs in the county is a reflection on Norfolk or on Java but what I do know is that we desperately need an injection of fresh talent into this county; it’s getting harder and harder to find people.

A large part of the problem revolves round the pigeon holing of developers. We shouldn’t be talking about Java Developers and C# Developers, we should just be talking about Developers. A good developer can pick up a new language in minutes and algorithms and best practices are largely language agnostic which can be applied anywhere. Even when idioms don’t translate well between languages a good developer will know this turning to Google which is awash with articles on “Language X for Y developers”. So why shouldn’t a good C# developer be considered for a Java role and vice versa? They are, after all, very similar languages. But it seems you must have X years experience in language Y and, for the ultimate irony, you will be interviewed about design patterns from a book on C++.

The second issue is out now and can be downloaded here.

Words: Dom Davis

Tuesday, 3 December 2013

NorDev 7: Agile as Enterprise Culture (Aviva) & Preaching The Gospel (Neontribe)

What: NorDev 7: Agile as Enterprise Culture (Aviva) & Preaching The Gospel (Neontribe)

Where: Virgin Wines, 4th Floor, St James' Mill, Whitefriars, Norwich, NR3 1TN

When: Wednesday 9th January 2014 @ 6.30pm

Sign-up: http://www.meetup.com/Norfolk-Developers-NorDev/events/152603352/

Stories from Suncorp: Agile as Enterprise Culture 

Rob Hills (Aviva)

As part of Aviva’s ambition to adopt Agile the group COO created an exchange programme with the Suncorp Group in Australia and New Zealand. A team of 4 Aviva people travelled over to see the Suncorp IT and Business operations in Sydney, Melbourne and Brisbane from July to October this year. What we saw was an organisation that has been on a long, challenging and rewarding journey to embrace Agile at Enterprise scale within the Insurance and Banking sector. This talk will share the background to the exchange programme and the companies involved, share what we experienced including a video we created for Aviva and talk about how Aviva is furthering its Agile ambitions and learning from the exchange programme.

The presentation will also discuss one of the major programmes underway at Suncorp covering how the team approached the technology and cultural challenges of running Agile at scale in a complex organisation and highly regulated sector.

Rob Hills is a 12 year Aviva veteran with a background including most roles in IT. A fan and practitioner of Agile, Systems Thinking and Lean I’m constantly discovering how much I don’t know and the Suncorp experience helped reinforce this! On returning from Suncorp I’ve been asked to work with the major change programmes within Aviva looking at how we can further develop our Agile adoption.


Preaching the gospel of the Government Digital Service Design Manual 

Harry Harrold (Neontribe)

Over the last two years there's been a step-change in how central government has approached web projects. I'll give an outsider's view of the story; how it started, and where it might go next.

People have been telling government it's been doing things wrong for years: folk like MySociety and Rewired State from the technical side, and any number of new stories of big projects gone badly wrong. In 2010, a report by Martha Lane Fox called for a revolution. Fix transactions, fix publishing, build a government digital service, get open. Government listened. Alpha, beta, live followed: publishing first, transactions next. Award-winning, user-centered, iterative, aimed at getting people digital by default.

Importantly for us, they wrote down how they did it; and how they want the rest of government to do it. The Government Service Design Manual isn't perfect by any stretch, but it's the best articulation I've seen of how I think things should be done, and I'll step through it. I think it has huge ramifications for the spread of agile development practices elsewhere.

Harry (Harrold) remembers the last dot-com boom, and left the US technology company who bought his start-up out when they asked him to move to Texas. After a long break, he started really learning again in 2007. He believes empathy is a key skill for developers and designers, or as he says "If you care about the people who'll use the software you're creating, it'll be better software."

Sunday, 1 December 2013

Paul Foot Review

I don’t think I ever want to go and see Paul Foot again. Some of his act was funny, but most of it was just silly nonsense, although the concept of distractions seemed to work quite well. I don’t understand how he can get away with jumping into the crowd and touching people, let alone laying across people. Maybe everyone else there knew what to expect.

Wednesday, 27 November 2013

The Pixies - Hammersmith Apollo

It wasn’t until I checked in on Foursquare that I actually managed to find out who was supporting The Pixies. It was The Jezabels. They were surprisingly good. They only played for half an hour and the first three songs all sounded the same, but it was good and in places quite dramatic (I like dramatic!) and the drummer was excellent. I won’t be rushing out to buy their album or EPs though.

The best I can say about the Pixies is that they sound much better live than recorded and I think the PA in the Hammersmith Apollo did them justice (the last time I was at the Apollo was for Europe and they were fantastic). Unfortunately they did nothing for me, although the 100 minute set (we didn’t stay for the encores) did pass quite quickly and the rest of the room, including my wife appeared to be having a fantastic time.

The Pixies are clearly talented musicians with an adoring fan base, they’re just not for me.


Gravity Review

I was at university and about 20 when I really discovered reading for pleasure. I started with Arthur C. Clarke’s A Space Odyssey quadrilogy and then moved on to the Rama series. I read Arthur C. Clarke pretty much exclusively until I was 29 when I discovered Alastair Reynolds and Richard Morgan. Now I read other stuff too. The thing about Arthur C. Clarke is that he rooted all of his stories in real science. Now that I’ve read other authors I see that sometimes the story suffered because the science was often favoured over the story.

There was a lot of hype around the new Gravity film starring Sandra Bullock and George Clooney. Surely there’s only so much of a story you can write about two people in space suits stranded in space? I did wonder if it was just going to turn into a dialogue between them until they were unexpectedly rescued - luckily I was wrong.  Although I was also reassured by the fact the film was advertised as only 90 minutes long.

Gravity could have been an Arthur C. Clarke story (I’ve checked and it isn’t). It was great if you wanted to see details of what the space shuttle, international space station and chinese spaces station and various other craft are (probably) like and some of the other science around space exploration. Some of the suspense was incredible. The problem was there was just no story and the bit where George Clooney appears as an apparition to help Sandra Bullock just made it silly. Real spacesuits are unlikely to take the pummelling that they did in the film and Sandra Bullock should have run out of air long before she did.

Several people whose opinion I respect have seen this film and loved it. So maybe you should see it and perhaps I just don’t get it?

NorDev: Neo4j Workshop & Hybrid Mobile Project Next Week!

Is it really nearly December already? Of course nearly a new month means that NorDev is not too far away! Next week we have an extra special NorDev day for you. In the afternoon there is a Neo4j workshop with Ian Robinson of Neo Technology and in the evening a double header on mobile from IBM with Andrew Ferrier and Vladimir Kislicins. Full details are below. There are still spaces for, so please RSVP and come along. As always, if you are signed up and you can no longer make it, please let us know by updating your RSVP.

NorDev in January will be a little later than usual as the first Wednesday in January is the 1st of January and we suspect many of you will still be recovering from the night before. So NorDev will be on Wednesday 8th January. We have Aviva headlining and talking about an exchange programme they did with an Australian insurance firm who are very agile. Alongside Aviva we’ll be hearing from local firm Neontribe. Many of you will remember Harry Harrold from the question time event! We’re in for a very amusing evening!

Christmas Special with IBM: Hybrid Mobile Project 

Andrew Ferrier & Vladimir Kislicins

When: Wednesday 4th December 2013 @ 6.30pm

Where: Virgin Wines, 4th Floor, St James' Mill, Whitefriars, Norwich, NR3 1TN

Sign-up: http://www.meetup.com/Norfolk-Developers-NorDev/events/141440522/

The Norfolk Developers Christmas special is a double header on Mobile and IBM Worklight Best Practices from Andrew Ferrier and Vladimir Kislicins of IBM’s mobile division.

Hybrid Mobile Project - Best Practices and an Introduction to using IBM Worklight
In this presentation, we look at some of the best practices we have developed for working on hybrid Mobile Projects. We'll start with a brief recap of web and mobile development models, then focus on the content within the hybrid container, building to discuss JavaScript toolkits and frameworks, looking at how they make mobile web development more straightforward, and how a framework for structuring larger applications can help.

We'll then move on to talk about the IBM Worklight platform, providing an introduction and describing how it can be used to built some of these types of application. We'll talk about a few Worklight-specific best practices, then demonstrate some of the applications we have built for customers using this technology, showing a little under-the-covers.


Half Day Workshop: An Introduction to the Neo4j Graph Database

Ian Robinson

When: Wednesday 4th of December 2013, 1:00pm to 4:45pm

Where: The King's Centre, King Street, Norwich, NR1 1PH

Sign-up: http://www.meetup.com/Norfolk-Developers-NorDev/events/141314382/

This is a half day (afternoon) workshop prior to the main Norfolk Developers event in the evening. You must sign up separately for the evening event if you wish to attend.

Neo4j is a JVM-based, open source graph database. With the power to store and query billions of highly connected, variably structured entities, it is ideally suited to solving complex network- and graph-oriented data problems. Today, Neo4j is employed in business-critical applications in domains as diverse as social networking, recommendations, datacenter management, logistics, entitlements and authorization, route finding, telecommunications network monitoring, fraud analysis, and many others.

This tutorial will show you how to develop a Neo4j-based graph database application. With a mixture of architecture and hands-on coding exercises, you'll quickly learn how to design a graph data model, write queries, and incorporate Neo4j into a server or desktop application. Topics include:

- Introduction to Neo4j
  - The property graph data model
  - Database features
  - Example use cases
- Creating and querying graph data
  - Cypher query language
  - Java APIs
- Building a graph database application
  - Application architectures
  - Data modeling
  - Testing

You don't need any previous experience of Neo4j to participate. You will, however, need some experience of Java, and a laptop with a Java IDE of your choice.

The venue for this event is provided by Naked Element Ltd.


Tuesday, 26 November 2013

Help needed marketing the Norfolk Tech Journal

The second issue of the Norfolk Tech Journal is due out in the middle of next week. The website is attracting about 50 to 150 views a day (during the working week). We have a single paying advertiser and a significant production and printing overhead.

I need to increase the views (ideally 1000+ per day) and the number of advertisers and I am looking for some help. A marketeer of the required scale I am not. There are lots of marketing agencies in Norwich and I am hoping that some of you are prepared to help me. In return I can offer advertising and features in the journal and I’m happy to discuss other ways I or one of my projects may be able to help you in return.

If you’re interested in helping market the Norfolk Tech Journal, please drop me a line: paul@nakedelement.co.uk.

Thursday, 21 November 2013

Winter Is Coming - Part 5


In this, the fith part of Winter Is Coming we take a look at three more sessions from next year’s NorDevCon. Tickets for NorDevCon on Friday the 28th of February 2014 are on sale now! You can buy your ticket by following the link below:

http://nordevcon2014.eventbrite.co.uk/  

DD The Other SDLC

PDD, or Panic Driven Development, isn't what you'd consider to be a mainstream Software Development Lifecycle, but it's out there, and it's adoption is surprisingly high. Scarily, most teams don't even know they're using it. It doesn't matter if you're Waterfall or Iterative, RAD or RUP, Agile or Lean, you almost certainly use some elements of PDD. In moderation this can be A Good Thing™ but too much PDD can kill a project, and left unchecked it can kill a company. To make things worse, many people think they're implementing Agile techniques when all they're doing is embracing PDD and all that's wrong with it. This session aims to highlight the characteristic elements of PDD, allowing teams to spot where they've drifted away from Agile, and helping them avoid the pitfalls of PDD in the future.

Dom Davis 

Dom Davis heads up IT at Virgin Wines and has been an avid Agile practitioner for well over a decade. A veteran of PDD teams he's now helped pull two companies out of the PDD trap and put them on their way to being productive members of the Agile community.  

LevelDB + Node.js

When LevelDB met Node.js it sparked a new way of thinking about databases. Rather than the traditional approach of selecting a complete database system, with Level you plug together the modules you want, to create the database you need. You make your own choices around replication, consistency and functionality. This talk will include an overview and some practical demonstrations with live-coding databases.

Orleans

Known for underpinning the Halo 4 server-side components, Orleans offers an actor based approach to programming for the cloud. This simplifies the programming model by removing shared state and thread safety concerns, and unlocks the potential for huge horizontal scale out. Orleans is a great fit for online computer games, but is also applicable in other areas, from business applications to the Internet of Things. The talk will be an overview of the architecture, and a live coding demonstration. Richard has had early access to the technology, which is not currently publicly available.

Richard Astbury 

Richard helps software businesses around Europe migrate their applications to the cloud. He works with a wide variety of companies, ranging from the smallest startups to the largest software businesses in the world, and specializes in moving applications that were never designed to run in the cloud, utilise the Windows Azure platform. Richard is a Microsoft MVP for Windows Azure, and Senior Consultant at Two10degrees. He is often found developing open source software in C# and Node.js, and lives in Suffolk with his wife and two children.   


Product Prototyping with Heroku - The Validated Ship!

Pete has spent the last 7 years working for web agencies and has come to the conclusion that one of the cheapest, most productive ways to develop a new project is through prototyping. Prototyping provides quick validation of our assumptions (we’ve all made them) and aids the creation of meaningful products that your customers actually want! We’re blessed as developers; there are more tools to help us prototype than we can shake a mucky stick at: backend frameworks, frontend frameworks and new plugins blogged about everyday. However, there is one tool Pete won’t deploy without: Heroku - a cloud based hosting platform. Heroku allows Pete and the Beta Hive team to turn local hacks into live, functioning products with little or no effort. This talk will document the Beta Hive prototyping process, how they validate their assumptions and most importantly how they deploy their products.

Pete Roome
Pete is a Developer at Beta Hive (http://betahive.com) a Product Development agency based in London. He is currently working on Pingle - a mobile app for meeting people and making new friends. Pete previously worked for a startup in Paris before co-founding PANDR Web Design & Development in Norwich. Pete is also a Developer at The 405, a leading online Music & Culture Magazine.  

Tickets

There are 50 Super Early Bird tickets at £50 + fees and 450 Early Bird tickets at £75 + fees. We are offering significant discounts for students and the unemployed. Please email paul@nakedelement.co.uk for details. There are 80 places for the conference dinner (3 courses, 2 glasses of wine and speakers!) and tickets are £35 + fees. The Virgin Wines reception is free to attend for conference attendees and there are 80 places. Tickets are on sale now:

http://nordevcon2014.eventbrite.co.uk/  

Originally published here.

Test Driven Development Doesn't Mean Test First

I’m a fraud and here’s why.

I am a huge advocate of Test Driven Development (TDD). I’ve even written an introduction to TDD. In his book Test Driven Development by Example [TDDbyExample] Kent Beck defines TDD as a process where you must write tests for code before writing the code itself. Therefore if you’re doing TDD you have to write the tests first, right? Wrong!

I really feel like unburdening, so here’s another admissions. I’m addicted to the green bar and high code coverage percentages. For those that are unfamiliar with the green bar, it’s a feature of the JUnit (and other testing framework) GUI. If all your tests pass you get a green bar. If any of your tests fail, you get a red bar. I’m addicted to the green bar, I can’t sleep without it. There are tools that allow you to measure how much of your code is exercised by your tests as a percentage. Usually anything over 80% coverage is considered good. I always strive for 100%, but usually achieve high 90s. I can’t sleep without high code coverage either. It’s very important that you bear these two vices in mind as you read on as they give me a discipline that not all software developers have. This isn’t because I’m some super software developer. It’s an affliction, believe me. If you don’t have this discipline, write your tests first.

There are many advantages to TDD. The two that stand out for me are loosely coupled code and code that’s easy to test (obviously). Actually by making your code easy to test it becomes loosely coupled and easy to change by default and that’s the point I’m making. If you want to get the green bar and have high code coverage then you need to make your code testable. Writing the tests first forces you to make your code testable, but it’s not the only way. If your tests are automated and measuring code coverage is automated or better still your continuous integration system runs your tests and measures the code coverage you’re forced to make your code testable. The key, when writing your code is to think about how you’re going to test it and write the tests soon after. This is a skill that has to be learnt and the best way to learn it is to start test first. Once you have it nailed though, you too will become addicted to the green bar and high code coverage. Of course you still have to write the tests, before you’ve written too much code, and refactor to remove duplicate code. It’s important to keep running the tests and to make sure they pass every time you make a change to the code. Many developers are lazy and don't bother. My affliction means that if I'm lazy, I don't sleep. It's a curse.





Tuesday, 19 November 2013

Norfolk Developers Christmas Special with IBM

What: Hybrid Mobile Project - Best Practices and an Introduction to using IBM Worklight

When: Wednesday 4th December @ 6.30pm

Where: Virgin Wines, 4th Floor, St James' Mill, Whitefriars, Norwich, NR3 1TN

Sign-up: http://www.meetup.com/Norfolk-Developers-NorDev/events/141440522/

The Norfolk Developers Christmas special is a double header on Mobile and IBM Worklight Best Practices from Andrew Ferrier and Vladimir Kislicins of IBM’s mobile division.

Hybrid Mobile Project - Best Practices and an Introduction to using IBM Worklight  


In this presentation, we look at some of the best practices we have developed for working on hybrid Mobile Projects. We'll start with a brief recap of web and mobile development models, then focus on the content within the hybrid container, building to discuss JavaScript toolkits and frameworks, looking at how they make mobile web development more straightforward, and how a framework for structuring larger applications can help.

We'll then move on to talk about the IBM Worklight platform, providing an introduction and describing how it can be used to built some of these types of application. We'll talk about a few Worklight-specific best practices, then demonstrate some of the applications we have built for customers using this technology, showing a little under-the-covers.

Andrew Ferrier

Andrew consults for IBM Software Services, working with IBM customers on mobile technologies, especially Dojo Mobile and IBM Worklight.

He has presented extensively on Dojo, Mobile, REST, and Web APIs, contributing Intellectual Capital to the IBM and WebSphere communities, as well as writing two IBM Redbooks, and numerous posts on Dojo Tips 'n' Tricks and SOA Tips 'n' Tricks, both of which he co-founded. He also regularly speaks at internal and external customer conferences, including IBM IMPACT and the European WebSphere Technical Conference. Previously, he worked with WebSphere ESB and WebSphere Process Server.

Vladimir Kislicins  

Vladimir started his career in IBM MQ Development and recently joined IBM Software Services to get more involved with mobile technologies. Since joining the team he focused on rapid prototype development leading proof of concept projects, participated in customer workshops and provided support to other team members with Android native development. With passion in mobile technologies, Vladimir has experience with mobile application development in Worklight and Android native as well as several Prior Art publications focusing on optimising software processes to reduce battery consumption on mobile devices.

Thursday, 14 November 2013

Winter Is Coming - Part 4

In this, the fourth part of Winter Is Coming we take a look at three more sessions from next year’s NorDevCon. Tickets for NorDevCon on Friday the 28th of February 2014 are on sale now! You can buy your ticket by following the link below:

http://nordevcon2014.eventbrite.co.uk/

XP at Unruly

Unruly is the leading global platform for social video marketing. Founded in 2006, we now have 11 offices and employ over 125 people globally including Germany. We've been applying eXtreme Programming (XP) from the start and that's still a core part of how we develop our software products. As our company and customer base has grown, we've had to figure out how to shape user stories and make plans with stakeholders spread across US and Europe. We also have grown our tech team so we can continue to develop new product offerings with rich user-experience while improving our underlying infrastructure to handle a growing amount of traffic and data. Come to this session to hear about how we use XP and where we've had to make adjustments to adapt to scale.

Rachel Davies

Rachel is co-author of the first "Agile Coaching" book and works as Agile Coach at Unruly Media, the leading global platform for social video marketing. Internationally recognised and presenting at industry conferences worldwide, Rachel started out working as a software developer and has been an agile practitioner since 2000 applying a range of agile methods including XP, SCRUM, Lean/Kanban, and DSDM. Follow Rachel on Twitter @rachelcdavies.

Cyber-Dojo

Created by software consultant Jon Jagger cyber-dojo is the world's simplest non-development environment! In a cyber-dojo you practice by going slower and focusing on improving rather than finishing.

What is cyber-dojo? 
cyber-dojo is an online browser-based coding dojo. Each group:

  • writes their code and tests inside a web browser 
  • presses their run-tests button to submit their code and tests to the cyber-dojo server 
  • the server saves the submission, runs the tests, and returns the test-outcome to the browser as a traffic light: red if one or more tests failed, amber if the tests could not be run (eg syntax error), green if all the tests passed
  • a dashboard shows the traffic light history of all groups. Click on any traffic light to open a diff-view of that submission
  • start a new practice session from any diff-view

Why cyber-dojo? 
Jon built cyber-dojo to promote deliberate practice of:

  • test driven software development, and
  • team dynamics and collaboration

Jon strongly believes that if you practice coding using your normal development environment then you are likely to be drawn into an unhelpful "completion" mindset.

Practising in a cyber-dojo helps to combat this tendency since a cyber-dojo is so obviously not your normal development environment!

Practising in a cyber-dojo helps you to concentrate on the practice. Practising in a cyber-dojo helps you concentrate on improvement. Find out more here: http://jonjagger.blogspot.no/p/cyber-dojo_2380.html. Read about Cyber-dojo here: http://www.masteringagilepractice.com/. Try it out here: cyber-dojo.com.

* * Participation in CyberDojo requires a laptop per pair. Please bring your own laptops * *

Jon Jagger

Jon Jagger is 2E years old (hex). He's loved software since he was 10 (dec). He runs his own software consultancy specializing in practice, people, process, agility, test driven development, and complex-adaptive systems-thinking. He built cyber-dojo.com to promote deliberate practice for software developers. He's worked with Accenture, Aviva, Cisco, Ericsson, Friends Provident, HP, Microsoft, Opera, Ordnance Survey, RBS, Reuters, Renault F1, Schlumberger, Tandberg and many many more. If you don't like his work he won't invoice you. He's the ex ECMA TG2 C# convenor. He's the current ACCU conference chairman. He's had some C# books published. He's married to the beautiful Natalie, and proud father of Ellie, Penny and Patrick. He loves freshwater river fishing. He live in Somerset, England. On twitter he's @JonJagger.

The Microsoft Cloud OS Data platform


The Microsoft Cloud OS Data platform enables high performance, insight rich solutions to be delivered securely across private, hosted and public cloud infrastructures. This session will cover the new capabilities being delivered in SQL Server, SQL Server PDW and HDInsight in the first half of 2014.

Anthony Saxby

Anthony is responsible for the Information and Data platform business for Microsoft UK. This role covers the product marketing and business management for Microsoft SQL Server, Microsoft HDInsight and Microsoft Biztalk Server. Anthony has been at Microsoft for 19 years and prior to his current role was Practice Manager for Microsoft’s Architecture and Planning consulting team. Anthony has 25 years experience in the software and IT Services industry and has worked on large projects in Retail, Financial Services and Government, covering application areas ranging from B2C Commerce solutions in the Financial Services industry through to large scale Integration projects in the Government sector.

Tickets

There are 50 Super Early Bird tickets at £50 + fees and 450 Early Bird tickets at £75 + fees. We are offering significant discounts for students and the unemployed. Please email paul@nakedelement.co.uk for details. There are 80 places for the conference dinner (3 courses, 2 glasses of wine and speakers!) and tickets are £35 + fees. The Virgin Wines reception is free to attend for conference attendees and there are 80 places.

Tickets are on sale now: http://nordevcon2014.eventbrite.co.uk/

Originally published here.




Skid Row at the Waterfront November 2013

There are a few things I’ve waited twenty years for and I’ve written about some of them on this blog. In August 1992 I was on holiday with my parents. I don’t remember where, but I remember the cottage we stayed in and my sister’s radio that we listened to Atlantic radio on constantly. I knew one of my friends from school was at Donington Monsters of Rock and that they were broadcasting it on Radio 1. So I sneaked away to my bedroom and try to tune it in. Radio 1 reception was awful. Thunder were playing, but I soon got frustrated with the sound quality. When I got back to Norwich I started “collecting” the albums by all the bands who played:

  • Iron Maiden
  • Skid Row
  • Thunder
  • Slayer
  • WASP
  • The Almighty

and soon they all became firm favorites of mine. In the twenty one years since 1992 I have seen all of these bands multiple times, except for Skid Row. I went to my first Monsters of Rock in 1994 (Aerosmith headlined) and I went again in 1996 (Kiss and Ozzy), but I missed 1995 when Skid Row played again and some time after Sebastian Bach, the incredible front man, left the band never to return.

In 2005 I attended the first every Bloodstock Open Air. Children of Bodom and Sebastian Bach headlined, but of course no Skid Row. He was incredible (as were Children of Bodom who are playing Bloodstock again this year) and of course did Youth Gone Wild and the other classics. Superb!

Fast forward to November 2013 and Skid Row are playing a double headliner with Ugly Kid Joe at the Waterfront in Norwich. I have moaned about the appalling quality of the Waterfront PA many, many times, but for some reason tonight they hit the sweet spot.

The support band Dead City Ruins were ok, but not worth getting excited about.

My concern about Ugly Kid Joe was that they’d do Everything About You and Cats In The Cradle and a load of fillers. Plus I’ve only got their first album (America’s Least Wanted) so haven’t kept up with their later stuff. I couldn’t have been more wrong. What an act! Musically very good and Whitfield Crane had a calm charisma which had the whole audience eating out of his hand all the way through. Who cares if they’re in their forties! I haven’t bounced up and down so much since I was in my early twenties.

Then the moment I’d been waiting upwards of twenty years for arrived. Original line-up, minus Seb, plus a new singler, who wasn’t as tall. First impressions were that they looked like spitting image characters of their younger selves. That didn’t matter because after the opener that I’d never heard before it was straight into classic after classic with only a small scattering of material from albums I didn’t know. In fact the only way the set could have been better was if they’d played their eponymous first album all the through followed by Slave To The Grind all the way through. They played superbly, but Seb’s replacement baffled me a little. He lacked Seb’s charisma and struggled to follow Whitfield Crane a little. Vocally he seemed to have the range, but not all of the time. He backed out of the first chorus during In A Darkened Room and then hit it almost perfectly the second and subsequent times.

It was certainly worth the wait and I wasn’t disappointed. Beyond a set consisting of the first two albums, the only way it could have been better would have been to have Seb back in the band. That’s probably about as likely as Fish back in Marillion or even freddie back in Queen.

Roll on Amon Amarth, Hell and the mighty Carcass on Sunday!


Wednesday, 13 November 2013

Alexei Sayle

Alexei Sayle doesn’t really do Have I Got News for You, Mock the Week or Buzzcocks. I have vague recollections of him doing stuff on the TV the 80s and 90s and of course Indiana Jones and the Young Ones. So I didn’t really know what to expect.

He was funny and I enjoyed it, but if I’m honest I found the swearing too much, a lot of the details of politics went over my head and £17.50 (each) for 75 mins isn’t really value for money.

Would I go again? No, not unless my wife wanted was keen to see him again and then I’d be happy too.

Tuesday, 12 November 2013

MobDevCon 2013 Videos Available On InfoQ Now

All of the videos filmed at this year's MobDevCon are available now on InfoQ:

http://www.infoq.com/mobdev-con-2013/

They are also linked from the presentation descriptions on this year's site:

http://mobdevcon.com/2013/

Next year MobDevCon will be on the 9th of July and the call for papers will be going out over the coming weeks.

Monday, 11 November 2013

Norfolk Tech Journal: First Issue Out Now!

“If I was going to start a software company, it wouldn’t be in Norwich” are words I actually said in 2008 when asked why the startup company I was working for was based in Norwich. Of course I’ve since changed my mind. I set up Naked Element Ltd. with Matthew Wells in 2012 for many of the same reasons that the startup I was working for in 2008 was in Norwich.

In 2011 my wife and I had one of those life changing experiences and I found myself back working in Norwich and determined to find out if there were technical people here. It is a source of extreme pride for me that I, along with the other founders of SyncNorwich and Norfolk Developers, built a strong and growing technology community in Norwich and Norfolk. I have been lucky enough to work with some of the best software engineers in the world and I find the level of talent and experience here in Norwich astounding.

More than twelve months ago now I was sat in Warings cafe talking to Julie “Jobhop” Bishop and she was lamenting how Norwich is frequently passed over as a tech city. I have been determined since then to put Norwich and Norfolk on the technology map. We have the community groups, the conferences, the technologists and the startups. The Norfolk Tech Journal is the next step and is intended to show the rest of the country, if not the world, that Norwich is a city of technology and this is where they should be doing business.

The first issue is out now and can be downloaded here.



Thursday, 7 November 2013

Winter Is Coming - Part 3


In this, the third part of Winter Is Coming we take a look at three more sessions from next year’s NorDevCon. Tickets for NorDevCon on Friday the 28th of February 2014 are on sale now! You can buy your ticket by following the link below:

http://nordevcon2014.eventbrite.co.uk/

All your types are belong to us!

Big Data tasks typically require acquiring and analysing data from a wide variety of data sources, visualizing the data and applying a barrage of statistical algorithms. This talk will show how this can be accomplished in Visual Studio on Windows or Xamarin Studio on Mac and Linux using F#'s REPL and Type Providers.

Type Providers give typed access to a wide range of data sources from CSV, JSON and XML to SQL, OData and Web Services, instantly without a code generation step. The Type Provider mechanism can also be used to analyse data with direct access to statistical packages like R and MATLAB as well as all the existing .Net libraries.

Finally visualizations can be generated using F#'s desktop charting libraries, or with ASP.Net and even JavaScript libraries like HighCharts.

Expect a sprinkling of anecdotes drawn from experiences working on large machine learning systems at Microsoft, and plenty of live demos.

Hands On Machine Learning with F# (Workshop)

This session will introduce basic Machine Learning concepts with a practical exercise using sample data from Kaggle. No prior knowledge of either Machine Learning or F# is required.

To get the most from the session please try and bring a laptop along with F# installed.

Installing F#:

* Use F# on Windows
* Use F# on Mac OSX
* Use F# on Linux

Phil Trelford

Phil Trelford is a Software Developer and Architect at Trayport, a market leading supplier of energy trading systems. He's a regular speaker, trainer, blogger, open source author, co-organizer of the London F# Meetup and Microsoft MVP.

Let Me Graph That For You

Graphs are one of the best abstractions we have for modelling connectedness. Graph databases, in turn, are one of the best tools at our disposal for modelling, storing and querying complex, densely-connected data. Today, graphs and graph databases are helping solve some of the world's most challenging data problems, in domains as diverse as search, social networking, recommendations, datacentre management, logistics, entitlements and authorization, route finding, network monitoring, and fraud analysis.

In this session we'll take a peek inside the graphista's toolbox. We'll look at some common graph data structures, and the graph database queries that unleash the insights buried inside them. We'll survey some of the tools and techniques you can use to graph your world, experiment with graph data, and apply it in your own applications. And we'll draw lots of circles and lines. We might even colour some of them in.

Ian Robinson

Ian works on research and development for future versions of the Neo4j graph database. Harbouring a long-held interest in connected data, he was for many years one of the foremost proponents of REST architectures, before turning his focus from the Web's global graph to the realm of graph databases. As Neo Technology’s Director of Customer Success, he has worked extensively with customers to design and develop graph database solutions. He is a co-author of 'Graph Databases' and 'REST in Practice' (O'Reilly), and a contributor to 'REST: From Research to Practice' (Springer) and 'Service Design Patterns' (Addison-Wesley). He blogs at http://iansrobinson.com, and tweets at @iansrobinson.

Agile maturity - avoiding the 'process trap'

In the early stages of Agile Transformation it is all too easy for organisations, particularly large enterprises, to fall into the trap of seeing Agile as just a new process to follow.  In this session, Janet will use her experience of Agile transformation at Aviva to describe some of the common pitfalls, together with  strategies that can be used to avoid them.

Janet Randell

Janet Randell has been the driving force behind the Agile transformation in Aviva UK General Insurance since early 2010 and is now the lead Agile SME in the Aviva global Agile transformation programme. Janet has worked in IT for more than 20 years and is passionate about breaking down organizational barriers to improve the effectiveness of software delivery. She has been involved in the enhancement and application of IT development processes throughout much her career, with previous roles including Methods and Tools support and management of the Architecture and Design team for UKGI.

Tickets

There are 50 Super Early Bird tickets at £50 + fees and 450 Early Bird tickets at £75 + fees. We are offering significant discounts for students and the unemployed. Please email paul@nakedelement.co.uk for details. There are 80 places for the conference dinner (3 courses, 2 glasses of wine and speakers!) and tickets are £35 + fees. The Virgin Wines reception is free to attend for conference attendees and there are 80 places.

Tickets are on sale now: http://nordevcon2014.eventbrite.co.uk/

Read the original here.

Friday, 1 November 2013

NorDevCon Tickets On Sale Now - Winter Is Coming - Part 2


Tickets for NorDevCon on Friday the 28th of February 2014 are on sale now! You can buy your ticket by following the link below:

http://nordevcon2014.eventbrite.co.uk/

There are 50 Super Early Bird tickets at £50 + fees and 450 Early Bird tickets at £75 + fees. We are offering significant discounts for students and the unemployed. Please email paul@nakedelement.co.uk for details. There are 80 places for the conference dinner (3 courses, 2 glasses of wine and speakers!) and tickets are £35 + fees. The Virgin Wines reception is free to attend for conference attendees and there are 80 places.

Check out the website for the confirmed speakers, sessions and programme:

http://nordevcon.com

Speakers for the remaining slots will be announced over the next few weeks. The call for papers is now closed.

Please find details of further highlights in the second part of Winter Is Coming below.

The Conference Dinner

The conference dinner will be held in the evening following the conference. In this unique experience the speakers remain seated while the conference attendees move round between courses. This is your opportunity to speak to your favourite speakers of the day. Last year the conference dinner was one of the highlights of the conference and sold out! Please make sure you purchase your dinner ticket at the same time as your conference ticket. You can view the menu here.

The Virgin Wines Reception

Virgin Wines will be hosting a reception at the venue between the end of the conference and the start of the conference dinner. As well as a glass of wine courtesy of Virgin Wines there will also be a bar. Places are limited so please make sure you get your free Virgin Wines reception ticket at the same time as your conference ticket.

The Architecture of Uncertainty

Ralph Johnson defined architecture as "the decisions that you wish you could get right early in a project, but that you are not necessarily more likely to get them right than any other". Given our inability to tell the future how can we design effectively for it? Much project management thinking is based on the elimination of uncertainty, and advice on software architecture and guidance for future-proofing code often revolves around adding complexity to embrace uncertainty. In most cases, this is exactly the opposite path to the one that should be taken.

The talk looks at how uncertainty, lack of knowledge and options can be used to partition and structure the code in a system.

Kevlin Henney

Kevlin is an independent consultant and trainer based in the UK. His development interests are in patterns, programming, practice and process. He has been a columnist for various magazines and web sites, including Better Software, The Register Application Development Advisor, Java Report and the C/C++ Users Journal. Kevlin is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of the 97 Things Every Programmer Should Know book.

Applied API design

It's all very well seeing toy examples of API design where only snippets are required, but what does a good API look like in a complete application?

In this live coding session, Jon will be applying his love of all things immutable, separation of concerns and other design goodness to a certain well-known shape-dropping game. We'll explore different approaches - including ones from the audience - as we go along, but end up with a clean model which works equally well when using WPF, a console-based view... or playing by email. Unlike some other sessions where Jon has shown some truly horrible, unreadable, twisted, evil code the aim here is to end up with an example of elegance and beauty. That doesn't mean we can't visit a few evil notions along the way, of course...

Jon Skeet

Jon Skeet is a Java developer for Google in London, but he plays with C# (somewhat obsessively) in his free time. He loves writing and talking about C#, and the third edition of 'C# in Depth' was published in September 2013. Writing less formally, Jon spends a lot of time on Stack Overflow... where 'a lot' is an understatement. Give him a puzzle about how C# behaves which gets him reaching for the language specification, and Jon is a happy bunny. Jon lives in Reading with his wife and three children.

Spock: the test framework of choice

JUnit, a derivative of sUnit, was the unit test framework of choice with Java for many years. Then came  TestNG and changed the scene: testing was about integration and system test as well as unit testing. With  behaviour-driven development (BDD) augmenting test-driven development (TDD) more development of test  frameworks became necessary. There are a number of Java frameworks for this but Spock, which is a  Groovy-based system, knocks them all for six.

Because Groovy is a dynamic language that works with the Java data model, it is symbiotic with Java. Spock can therefore be used for testing mixed Java and Groovy systems.

In this session we will explore what Spock can do and why it is the Java testing framework of choice.

Russel Winder

Ex-theoretical physicist, ex-UNIX system programmer, ex-academic. Now an independent consultant, analyst, author, expert witness and trainer. Also doing startups. Interested in all things parallel and concurrent. And build.

Actively involved with Python, Groovy, GPars, GroovyFX, SCons, Java, and Gant. Also Gradle. And Python-CSP. Seriously interested in Ceylon, Kotlin, D, Go, Rust.

Russel’s stance on testing: it isn't optional. Spock, py.test, Catch, etc. are your friends.


Originally publisher here.


Tuesday, 29 October 2013

NRUG October 2013 Review Foxes and Badgers


When Pete Roome and Rob Barwell left Norwich for their big break in the big smoke, you could be forgiven for thinking that NRUG might die there and then. This is not the case. The group is now in the very capable hands of Matthew Bennett-Lovesey.

There were lots of new faces tonight or at least faces that were new to me at this NRUG event. Ben Hammond works at Further and has moved from Perl to Ruby. Mark Hannant is a senior SEO consultant, also at Further. Kieron Johnson is a freelance ruby developer. Rob Anderson works for Payment Card Solutions, a Rails and Ruby shop, who also sponsored the refreshments this evening.

The venue for this NRUG was Further, an award-winning online marketing & SEO agency. Their offices are in The Old Church on St. Matthews Road in Norwich. They were very nice indeed.

Rapid Development with Ruby, Sinatra, Bootstrap CSS, DataMapper and SQLite

Phil Howard

Sinatra is an alternative to Rails. Phil took us through a simple example of how to create a basic web application, complete with security. The process looked very quick and easy and the application itself was aesthetically pleasing, but then Sinatra use Bootstrap, so you would expect it to be.

Data Mapper is an ORM (Object Relational Mapper) implementation of Active Record. Unfortunately it is no longer being developed. Phil took us through an example where he use Data Mapper to persist Fox objects and Badger objects, both types of Animal object to a database. In true ORM style, Data Mapper took care of creating the database tables and relationships and generated the code to persist and retrieve them. Phil modified the retrieval code to bring back either animal randomly and then pitched them against each other in a Top Trumps style.

There was lots of discussion about how ORMs work and how people either did or didn't like writing SQL. The example Phil demonstrated used single table inheritance and there was some discussion on about the pros and cons versus multiple table inheritance.

One drawback of Data Mapper is that it doesn’t support pagination. Surely every ORM should support that?

Beer Driven Development

Matthew Bennett-Lovesey

Matt explored the differences between TDD (Test Driven Development) and BDD (Behaviour Driven Development) although he replaced Behaviour in BDD with Beer for comic effect.

There appear to be two camps of people when it comes to BDD. Those who see it as a better TDD and those who see it as more than a development practice and as a wider process of requirements capture that involves lots of collaboration between the customer and the development team.

Matt started off by describing to us what TDD is and then went on to describe how it differed from BDD at a practical level. There were lots of examples, including lots of Ruby code. Ruby is often described as being better than Java for one reason or another, but I think Java has the upper hand in unit testing frameworks due to its use of annotations, while Ruby still uses inheritance to create test fixtures.

There was a lot of discussion on the real benefits of using TDD over not using it. Some people still struggle with the idea that the extra time taken to write the tests can save you exponentially more time later that would otherwise be lost to bug fixing.

These really were two excellent presentations and with all the banter and audience participation it was 10.30pm before people started to leave.

Thursday, 24 October 2013

NorDevCon: Winter Is Coming (Part 1)


One week from now tickets for the Norfolk Developer’s conference (NorDevCon) go on sale. NorDevCon is a one day Agile and tech conference in the heart of Norfolk, in the heart of winter. Details of the keynote presentations and speakers, as well as some other highlights from NorDevCon can be found below.

From 1st November you can buy your ticket here: http://nordevcon2014.eventbrite.co.uk/

Opening Keynote: Software Apprenticeships: This Time It's Personal

There has been much talk about apprenticeships for software developers, but between employers, academia and practitioners we've struggled to find a model that works for proper long-term apprenticeships. After nearly a decade of personal research into the problem, I'm embarking on my first apprenticeship with Computer Science undergraduate Will Price, applying an experimental model where experienced practitioners like me coach and mentor young programmers directly. In this presentation, I'll outline our simple apprenticeship model and the experience we're having with it, as well as discuss the wider problems of long-term software apprenticeships, and how our model might let us finally have our cake and eat it.

Jason Gorman


Jason has worked with teams at the BBC, City Index, Electronic Arts, Higher Education Statistics Agency, BUPA,  British Standards Institute, The Post Office, Merrill Lynch HSBC, Freshfields Bruckhaus Deringer, Orange, Lloyds TSB, AOL, Reed Business Information and Symbian, and many more.

Jason chairs the Software Craftsmanship conference in the UK, and is a contributor to other conferences including QCon, Software Practice Advancement, XPDay, Agile Finland, JAX London and CITCON Europe.

His web site, parlezuml.com, has been visited by more than a million software professionals since 2003, and his free tutorials on use cases, UML, OO design and Test-driven Development have had more than 500,000 downloads.

Closing Keynote: Building on SOLID Foundations

Why can't we just add a feature to our system without tearing the code apart or, worse, patching around it? It ought to take just a few lines. We know the code is supposed to be modular and coherent, but too often it just doesn't turn out that way.

We don't believe it should be this hard to change object-oriented systems. We've seen examples where it really is that easy to add a new feature. The difference seems to be in the intermediate level structure. The design principles that most programmers rely on don't address the middle ground where the complexity lies. We know about principles and patterns at the small scale, such as SOLID, and the large scale, such as REST. We're less familiar with the structures in the middle.

This talk is about design principles that we’ve learned help us develop mid-scale code structures that are easy to read and easy to change. At the lowest level, this means well-known patterns such as avoiding globals and following SOLID guidelines. At larger scales, this means assembling those SOLID objects to avoid hidden coupling so that the system as a whole is amenable to change. We focus on how objects fit together and communicate, and on being clear about how capabilities and information flow between objects in the running system.

Nat Pryce


Nat Pryce is a co-author of Growing Object-Oriented Software Guided by Tests. An early adopter of XP, he has written or contributed to several open source libraries and tools that support TDD and was one of the founding organisers of the London XP Day conference. He has worked as a programmer, architect, trainer, and consultant in a variety of industries, including sports reportage, marketing communications, retail, media, telecoms and finance. He has delivered systems ranging from embedded devices to large compute farms supporting global business.


Steve Freeman


Steve Freeman, author of Growing Object Oriented Software, Guided by Tests (Addison-Wesley), was a pioneer of Agile software development in the UK. He has developed software for a range of institutions, from small vendors to multinational investment banks. Steve trains and consults for software teams around the world. Previously, he has worked in research labs and software houses, earned a PhD (Cambridge), written shrink-wrap applications for IBM, and taught at University College London. Steve is a presenter and organiser at international industry conferences, and was chair of the first London XPDay.

10 years of Doing Behaviour-Driven Development All Wrong

10 years ago, Dan North first came up with the idea of BDD: using examples in conversation to explore the behaviour of systems, then carrying those examples into code. Since then, we've learnt a lot about how BDD works, how it works best, and how it can fail horribly! Even the most experienced BDD practitioners have learnt a lot from their failures... but what were they? And how are we failing now?

In this talk, Liz takes a look at things we said back then which we shouldn't have, ways in which we abused BDD more than we used it, and things that we're still doing all wrong today. Come along to see the mistakes, listen to the stories, and hear the apologies!

Liz Keogh


Liz is an experienced Lean and Agile consultant and well-known international speaker. Coming from a strong technical background, her work covers a wide variety of topics, from software development and architecture to psychology and complexity thinking. She is best known for her involvement in the BDD community, and was awarded the Gordon Pask award in 2010 for deepening existing ideas in the space and "coming up with some pretty crazy ones of her own".

Continuous Delivery at 7digital - An Experience Report

An introduction to Continuous Delivery, it's purpose and benefits, and how we achieved it at 7digital.  An overview of the technical and people changes we made, and the impact these had - both good and bad, followed by a "A Day in a Life of a Change at 7digital".


Chris O’Dell


Chris O’Dell is a Lead Developer at 7digital, one of London’s premier digital download companies, where she heads up the API team. She has nearly ten years experience working on the back-ends of web based services, primarily in .Net, most recently focussing on Web APIs.

Chris has a keen interest in Test Driven Development, Continuous Delivery and Agile development practices. She lives in London and in her spare time has begun learning to play the Cello.

Tickets

Ticket go on sale on 1st November at 9am. There are 50 Super Early Bird tickets at £50 + fees and 450 Early Bird tickets at £75 + fees. We are offering significant discounts for students and the unemployed. Please email paul@nakedelement.co.uk for details. There are 80 places for the conference dinner (3 courses, 2 glasses of wine and speakers!) and tickets are £35 + fees. The Virgin Wines reception is free to attend for conference attendees and there are 80 places. You can buy your tickets here: http://nordevcon2014.eventbrite.co.uk/

Original article published at: http://wp.me/p41ugV-68

Wednesday, 23 October 2013

You Can't Win Them All

Since I started Agile East Anglia in December 2011 I am very happy to say that everything I’ve been involved with (SyncNorwich, Norfolk Developers, SyncConf, East Anglia MongoDB User’s Group, MobDevCon etc) has been very successful. We’ve built it and they’ve come, but my run of good luck had to end sometime and almost two years is a pretty good run.

It would appear that now is not the right time for C# Training in Norwich. Naked Element Ltd. has sold a single place out of a eighteen places, with a required minimum of sixteen places and the trainer has found some other solid work for the same week. Therefore it is with a lot of disappointment that I have been forced to cancel the training (the one place sold has of course been fully refunded).

They say these things come in threes (although I’m not really in anyway superstitious). Along side the training, I also had a poor turnout to my session at Agile Cambridge and we had to move the Norfolk Developers hack day as we couldn’t pull all the groundwork together in time. I’m hoping this is my three and (I know, I said I wasn’t superstitious) and the Norfolk Tech Journal will continue to grow and NorDevCon, next year’s MobDevCon and the rescheduled hack day will be a resounding success.


The Norfolk Developers Conference is Coming


This is the new NorDevCon advert designed by Shelley Burrows at smellyrabbit.

Thursday, 17 October 2013

Are singletons just misunderstood?

In around 2002 I read the Gang of Four [GangOfFour] and discovered the Singleton Pattern [SingletonPattern]. The gang of four describe the intent of the singleton pattern as:

Ensure a class only has one instance, and provide a global point of access.

Like most green developers I thought it was brilliant and used it to hold the database connection for my application as it was expensive to create, I didn’t want to create it until it was needed and I used it everywhere (my application was poorly abstracted).

I’d been a member of the ACCU [ACCU] for a little while and had made quite a few friends there who all told me Singletons were bad. I couldn’t see the problem and continued using it happily and didn’t think the extra compile and link time (I was using C++) when I modified the singleton was a problem. Until one day, when we introduced a second database for the application and I needed another version of the same singleton.  I didn’t see at the time that I could have used one singleton to serve up both database connections, but if I had I would have soon found just how tightly coupled to the singleton’s access function my code was.

The tones of “we told you so” are still resonating eleven years later and I have avoided singletons like the plague in favour of Kevlin Henney’s Parameterise From Above [PfA], where you create an object once in one place (for example in the main method) and then pass it around your code to every other object that needs it. Of course this doesn’t ensure that there is only one instance, it relies on the understanding and discipline of the developer.  It’s served me well for many years, but there have been a few isolated occasions since where the language or library I was using has restrictions where only a singleton would allow me to achieve what I needed to achieve. Happily this has mostly been in integration test code.

At a recent Norfolk Developers [NorfolkDevelopers] I chaired a BBC Question Time like panel on software development. The questions were very much based on my own views and prejudices about software engineering, so naturally there was a question on singletons. This was the first time we’d tried this, so I assembled a panel of what I thought were safe hands and asked this question to one of the safe pair of hands accordingly. We’ll call him Richard, mostly because that was his name. Much to my surprise, what I got back was advocacy of singletons!

I discovered a long time ago that understanding context is one of the most important parts of life, especially when it comes to understanding why people say and believe the things that they do. I think back to a memory from when I was a child, of a piece of film where you see a punk barging an old man out of the way; and then you see it again from another angle and realise he’s saving the old man from a heavy falling object.

When the panel was asked: “Are singletons evil or just misunderstood?” I read out something I had prepared previously, to give a little more context, explaining that Singletons lead to tight coupling; can be difficult to instantiate in threaded environments; and that it was difficult to know when to destroy them. Richard picked up on this and asked me to read it again, which I did.

Richard explained that all of these issues, and more, can be mitigated with the use of modern techniques such as dependency injection [DependencyInjection]. Dependency injection is a method of coupling objects at runtime, rather than at compile time.  As Kevlin Henney pointed out to me dependency injection is a classic, although sometimes verbose and poorly cohesive, application of parameterise from above.

For example, an option pricing engine may get its instrument prices from a number of different sources. You might have one class that retrieves Reuters’ prices and another that retrieves Bloomberg’s prices. They share a common interface, so, the pricing class doesn’t need to know which it is using; it just needs to know about the interface. In traditional systems, determining which object to use at runtime would be done within the code.

In recent years Inversion of Control (IoC) [IoC] containers have become popular.  The main concept behind IoC is, that, the responsibility for creating objects is taken away (inverted!) from the developer and the code; and delegated to a library which constructs objects on demand.  The IoC container knows about (through its configuration) dependency chains and supplies objects with appropriate dependencies for the entire object graph being created through dependency injection. IoC containers do more than construct objects however, they manage the entire object lifecycle and clean up and destroy out of scope objects.

So, in our example, when the IoC container creates the pricing object it will see that it has a dependency on an instrument object and look at its configuration to see which instruments object it needs to create and injects into the pricing object using dependency injection.

Creating an instruments object for Reuters or Bloomberg might be an expensive and time consuming operation and it makes sense to only do it once and then inject it into other objects that need to use it. Enter the managed singleton! One of the configuration parameters you can give to an object managed by an IoC container is: singleton. This means that the container will only ever create one instance of that object.  This doesn’t of course stop someone creating another instance of the object outside of the IoC container, so it doesn’t enforce a single instance programmatically, as with the Gang of Four singleton. However, it does remove tight coupling between the singletons and their dependants.

IoC containers can usually create singletons in a thread-safe manner, which is not the same as making the singletons thread safe. The IoC also container manages the lifetime of the singletons - in fact using an IoC container seems like a pretty good solution to many of the issues associated with singletons.
Richard had changed my mind, so I decided to write about it as I felt this was quite profound, for me at least. However, now that I have written about it I am no longer convinced. I started off describing Gang of Four singletons and then how I favoured parameterise from above.

Managed singletons, as I hope I’ve clearly explained, are very different. They don’t ensure a class has only one instance and do they really provide a global access point? Ironically, in at least one IoC container implementation I know of the container itself is a Gang of Four singleton and has a static access method that must be used if you want to use an object managed by the container outside of the container. Dependency injection too is a form of ‘parameterise from above’.

Maybe common thinking has shifted from considering Gang of Four singletons alone and now managed singletons (or similar) are considered singletons too. Personally, I don’t buy this. Singletons are still dangerous and should be handled with care. Remember, always parameterise from above.

Acknowledgements

Thanks to Geraint Williams, Kevlin Henney and Richard Featherstone for their contributions to the article.

 [GangOfFour] Design patterns: elements of reusable object-oriented software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. ISBN-13: 978-0201633610

[SingletonPattern] http://en.wikipedia.org/wiki/Singleton_pattern

[ACCU] ACCU: http://www.accu.org/

[PfA] Paramaterise from Above: http://accu.org/index.php/journals/1411, http://accu.org/index.php/journals/1327

[NorfolkDevelopers] Norfolk Developers: http://norfolkdevelopers.com

[DependencyInjection] Dependency Injection: http://martinfowler.com/articles/injection.html

[IoC] Inversion of Control: http://martinfowler.com/articles/injection.html


Monday, 30 September 2013

Norfolk Developer's Conference (NorDevCon) 2014

Naked Element Ltd. is proud to present NorDevCon, the Norfolk Developers one day Agile and tech conference. The conference will take place on Friday 28th February 2014 at the Kings Centre in Norwich. Building on the hugely successful Agile and technical tracks from this year’s SyncConf, NorDevCon will also feature a cloud and big data track, a workshop track and a combined local speaker and SyncDevelopHER (bringing together women in IT) track. The hugely successful conference dinner will be back as well as a reception hosted by Virgin Wines.

To be kept up-to-date with NorDevCon, please join the mailing list and follow the conference on twitter: @nordevcon

The Speakers

NorDevCon has a fantastic speaker line up in 2014. Some of the most popular speakers from this year's SyncConf will be returning along with plenty of new speakers from around the country and from the local area. We're still working on the opening keynote speaker and hoping to secure a popular figure from the software craftsmanship community.

Nat Pryce and Steve Freeman, the authors of Growing Object Oriented Software Guided by Tests, will be closing the conference. Their book took the software community by storm with it’s outside in approach to automated testing.

After speaking at SyncConf, Kevlin Henney, Phil Nash, Ian Robinson (Neo Technology) and Norwich favorite Liz Keogh will all be returning to Norwich for NorDevCon. Local speakers include Danielle Ashley, Dom Davis (Virgin Wines), Janet Randall (Aviva) and Pete Roome (ex Pandr).

The workshop track will see the return to Norwich of Jon Jagger's CyberDojo, an F# workshop from recent Norfolk Developers speaker Phil Trelford (Trayport), who will also be doing a presentation session on F#, and Russel Winder who will be providing hands on experience of the Spock testing framework.

Chris O'Dell (7digital) will be speaking about continuous delivery, Anthony Saxby (Microsoft) will be speaking in the new cloud & big data track, Rachel Davies (Unruly Media) will be returning to Norwich to tell us about Agile at Unruly Media and Jon Skeet (Google) will be speaking about C#.

More speakers will be announced as they are confirmed.

The Venue

The King’s Centre is a high quality conference venue in the centre of Norwich with 14 different rooms to suit individual requirements. The centre offers conference rooms, meeting rooms, breakout rooms and a 650 seater auditorium.


The Conference Dinner

The conference dinner will be held at the venue in the evening following the conference. In this unique experience the speakers remain seated while the conference attendees move round between courses. This is your opportunity to speak to your favorite speakers of the day. The price includes three courses and two glasses of wine per person. There will also be a bar.

Last year the conference dinner was one of the highlights of the conference and sold out! Please make sure you purchase your dinner ticket at the same time as your conference ticket.

The Virgin Wines Reception

Virgin Wines will be hosting a reception at the venue between the end of the conference and the start of the conference dinner. As well as a glass of wine courtesy of Virgin Wines there will also be a bar. Places are limited so please make sure you get your free Virgin Wines reception ticket at the same time as your conference ticket.

Sponsors

Once again we are getting a lot of support from technical organisations in the form of sponsorship. Confirmed sponsors for NorDevCon include:

Virgin Wines
Neo Technology
Norfolk Tech Journal

There are currently still some sponsorship packages available:

Associate £250

  • Logo on slide and mention during intro
  • Tweets & Mentions from @NorDevCon and @NorfolkDev
  • Logo on website


Partner £1500

  • Logo on slide and mention during intro
  • Tweets & Mentions from @NorDevCon and @NorfolkDev
  • Logo on website
  • Banner
  • Exhibit


Elite £3000

  • Logo on slide and mention during intro
  • Tweets & Mentions from @NorDevCon and @NorfolkDev
  • Logo on website
  • Banner
  • Exhibit
  • Speaking Slot (to all conference attendees)


If you are interested in sponsoring NorDevCon, please email nordevcon@nakedelement.co.uk.

Norfolk Developers

We are very lucky in Norwich to have a thriving and highly active tech community.

Complementing the existing tech community, Norfolk Developers is peeling back the high level and going straight to the heart of software development practices and processes. It has already brought a number of national and international speakers to Norwich and there are plans for local speakers and workshops in the near future.

You might want to try something new or wish to take your software development up to the next level. Norfolk Developers is jumping depth-first into the detail and bringing you practical value. We make it easy for you to access knowledge, progress and prosper in the highly specialised and valuable field of software engineering.

Norfolk Developers was founded by Paul Grenyer (Director at Naked Element Ltd, SyncNorwich co-founder and Norfolk Tech Journal founder), Dom Davis (lead developer at Virgin Wines) and Ben Taylor (CEO at Rainbird Technologies Ltd.). Meetups usually take place on the first Wednesday of the month and are usually held in the offices of sponsors Virgin Wines. Each meetup boasts two 60 minute presentations.

Naked Element Ltd.

Naked Element Ltd. is a made to measure software development services provider. Whether you need complex, enterprise-level software integrations, a made to measure web application or a mobile app, we have the experience and skills to meet your needs.

We work with clients at all organisational levels, to advise on strategies and to implement solutions.


NorDevCon promises to be even bigger and better than this year's SyncConf. I hope you’re looking forward to it as much as we are! Tickets go on sale on the 1st of November 2013 here.


Web: nordevcon.com
Twitter: @nordevcon
Mailing list: http://eepurl.com/BZ-an