Tuesday, 27 December 2016

2016 claims Metal Hammer

In the 90s there was a ‘Rock Music Magazine’ called Raw Power (later renamed to Noisy Mothers, before getting cancelled) which aired on ITV in the early hours of Saturday morning. I often saw it in the Radio Times and sometime in the early 90s started recording it. As my obsession for Rock and Metal grew I also started reading the fortnightly Raw Magazine, which in the late 90s transformed into a more indie based publication for one issue and then died. At the same time I was buying Kerrang! weekly, Metal Hammer once a month and at some point I had a subscription to Terrorizer magazine. Raw Magazine was always my favorite, but then it went crap and died, Kerrang! became like Smash Hits for Metal kids (or maybe I grew up a bit) and Terrorizer didn’t have enough of a range of metal bands to make it worth the subscription, so I was left with just a Metal Hammer subscription which I maintained for the album reviews so that I knew what was coming out.

Last week 2016 claimed another casualty, Team Rock, the company who bought Metal Hammer from Future Publishing. It appears they just ran out of money, stopped and brought in the receivers. This of course means that there is hope for Metal Hammer if someone can be found to buy it and/or Team Rock. Although it’s not feeling very likely.

In the late 90s I would read all the magazines I bought cover-to-cover. In more recent years it’s just been the album reviews, of the bands I recognised, and the odd interview if it looked interesting. Did that make it worth the subscription? Absolutely! Convenience is something I’ve been happier and happier to pay for as I’ve got older and having Metal Hammer drop through my door once a month and enable me to keep abreast of the latest album releases was fantastic.

I am going to miss Metal Hammer and inevitably miss album releases, which will mean I save a bit of money. The alternatives mean me taking positive action to follow bands on the internet, Facebook or Twitter and I’m unlikely to fit it all in.

Metal Hammer was how I discovered the Bloodstock Festival, my now annual pilgrimage to Derbyshire with around 10,000 other metal heads. It’s how I discovered Dream Theater, Behemoth and countless others. I discover most new bands at Bloodstock now, but still…

I’ll be keeping my fingers crossed that someone acquires Metal Hammer, if not the whole of Team Rock and maybe I need to investigate a Terrorizer subscription once more.

Let’s just hope we don’t lose Princess Leia before the year’s out (or in the 2017 for that matter).




Sunday, 25 December 2016

Passengers

Every time I’ve seen Jennifer Lawrence on the Graham Norton show she has been drunk and obnoxious. In The Hunger Games she wasn’t exactly a charismatic resistance leader. I’d heard bad things about Passengers and that coupled with the fact it had Jennifer Lawrence in it wasn’t giving me any hope, but the trailer made it look like an interesting sci-fi, so I went to see it anyway.

I’m glad I did. It wasn’t amazing, but it was good. I don’t think I’d need or want to see it a second time. If you put aside the fact that it’s set on a spaceship in a universe where hibernation for long distance travel is possible, there isn’t a great deal of science fiction in the this film. It’s a film about morals.

What’s more, Jennifer Lawrence is actually quite good in it and not at all annoying. Chris Pratt is also very good in this predominantly straight role (I’ve only seen him in Guardians of the Galaxy before) and of course Michael Sheen is, as always, amazing even in a supporting role.

The special effects are good, but don’t make the movie. They’re as they should be, there to tell the story not to outshine it. The climax is your usual last minute saving of the spaceship and characters just in the nick of time. Some of it is difficult to suspend belief for, but then it’s a sci-fi film.

Go see it, it’s many times better than Arrival.

Sunday, 18 December 2016

Rogue One

So much better than The Force Awakens, but still a little way to go and it all ended a bit Blakes 7.

After the disappointment that was the Force Awakens, I approached Rogue One with some trepidation. It was slow going to begin with and I missed the usual scrolling introduction to the story so far, but as one of three standalone Star Wars movies I guess there was no story to tell.

My heart fell more when there started to be a lot of references to the other films, especially Princess Leia in Return of the Jedi, as this was one of the things that had detracted from the Force Awakens, but they were just references, it wasn’t actually the same story!

Half an hour in it was great and I really enjoyed it from that point on. I liked the way it was almost split into two stories with two separate climaxes. I started to get a bit worried towards the end. I remember the beginning of the original Star Wars film (now called A New Hope) and how the Tantive IV had received the transmitted plans for the Death Star. The way Rogue One was playing out didn’t look as if it would be consistent. Then the plot sped up, just like it does at the end of The Clone Wars and the story played out just as expected to align with A New Hope.

Rogue One did what The Force Awakens failed to do. It built some brilliant characters, but then it did the worst thing you can imagine. It killed them all. I know people have wrongly said that the story was borne out of Mon Mothma saying “...many Bothan’s died to bring us this information…”, but it wasn’t necessary to kill everybody!

Friday, 16 December 2016

Nor(DEV):con 2017 Saturday Keynote Speaker – From Coda to Code: The SupaPass Journey


Nor(DEV):con keynote speaker, Saturday 25th Feb

From Coda to Code: The SupaPass Journey
Juliana Meyer

Join Norfolk Developers to discover the tech startup story, that began from a bedroom in Norwich with a vision for a more efficient rewarding future for creatives, and has led to a globally recognised tech platform working with artists from major record labels.

About Juliana
Juliana Meyer is Founder and CEO of SupaPass, the fair-trade music streaming app. SupaPass gives anyone with a fanbase their own subscription streaming service. Fans subscribe to a specific creator’s channel from £1 per month and creators earn up to 100% net revenue share of their fan subscriptions.

Juliana founded SupaPass to give efficient, fair, transparent revenue from streaming for artists, labels and publishers. Working with global artists like Grammy Award-winning Imogen Heap, SupaPass is exploring cutting edge technology including Blockchain.

Prior to founding SupaPass, Juliana Meyer ran her own label and was an award-winning singer-songwriter, including writing Norfolk’s Official Olympic Song for the 2012 Olympics. She also has a Masters Engineering Degree from Oxford University. One of the first steps in founding SupaPass was co-founding SyncNorwich in order to find and build the team.

Juliana also won the overall award at the 2016 DevelopHER awards.

RSVP: https://nordevcon2017.eventbrite.co.uk

Nor(DEV):con 2017 Saturday Keynote Speaker: The Technologist’s Guide to Hitchhiking


Nor(DEV):con keynote speaker, Saturday 25th Feb

The Technologist’s Guide to Hitchhiking
Seb Rose

Are you assessed according to the professional development plan you submitted at last year’s appraisal? Where will you be in five year’s time? Have you ever been hitchhiking?

While it’s important to acquire relevant knowledge and skills to further your career, it’s also useful to occasionally reflect on the role that serendipity plays in all our lives. I’m not talking about loosely thought out escapist dreams or delegating your career to a higher power. The best professionals and business people are those that are able to take advantage of opportunities when they arise – something that observers often characterise as luck. If it is luck then, to some extent, we make our own luck.

You may be wondering where hitchhiking comes into this. In part, it’s through the long relationship that technologists have had with the work of Douglas Adams and the number 42. Hitchhiking is also a good metaphor for the development of a career in technology, incorporating all the elements of forecasting and preparation, but combining them with massive unpredictability.

I’ll draw on over 30 years of software development (and hitchhiking) to encourage you to both loosen up and apply yourself.

About Seb
Consultant, coach, designer, analyst and developer for over 30 years. Seb has been involved in the full development lifecycle with experience that ranges from Architecture to Support, from BASIC to Ruby. Recently he has been helping teams adopt and refine their agile practices, with a particular focus on collaboration and automated testing.

Seb is the lead author of “The Cucumber for Java Book” (Pragmatic Programmers) and a contributing author to “97 Things Every Programmer Should Know” (O’Reilly). He has written for many online journals, including Agile Connection, Simple Talk and the Prose Garden. He has spoken at dozens of UK and international conferences, including Software Architect (London), XP (Vienna & Rome), Agile 2014 (Orlando), Java One (San Francisco), NDC (Oslo), Agile Testing Days (Potsdam) and Eurostar (Maastricht).

RSVP: https://www.eventbrite.co.uk/e/nordevcon-2017-tickets-26029662421

Nor(DEV):con 2017 Friday Keynote Speaker: Are you ready for the coming revolution?


Nor(DEV):con keynote speaker, Friday 24th Feb

Are you ready for the coming revolution?
Russel Winder

UK school curriculum underwent a revolution as of 2014-09: ITC was replaced with programming (aka computer science). Whilst the change itself was campaigned for, and widely wanted, the way government handled the change left a lot to be desired. Some, but not all, universities and colleges have joined in realising the change and preparing for the consequent revolution in university computer science curriculum, c.2018 onward. Are businesses ready for the knock-on change?

This presentation will delve into some of the most important and/or obvious issues surrounding this world leading experiment in child education.

Ex-academic, Analyst & consultant Russel talks about the important issues surrounding the government’s push for programming in UK schools, and how the way it’s been handled has left a lot to be desired.

From 2015 ICT in UK schools is to be replaced with programming, but the way the government handled the change left a lot to be desired. Russel talks about some of the most important and obvious issues surrounding this world leading experiment in child education.

About Russel
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 Groovy, GPars, GroovyFX, SCons, Me TV, and GStreamer. Also Gradle, Ceylon, Kotlin, D, Go, and bit of Rust. And lots of Python, especially Python-CSP.

Full agenda: http://www.nordevcon.com/agenda-2017/

RSVP: http://www.nordevcon.com/

Nor(DEV):con 2017 School conference day


Norfolk Developers are excited to announce their programme for Nor(DEV):con’s schools day, put together by Paul Foster, Microsoft in consultation with many members of faculty from different schools across Norfolk & Norfolk Developers themselves.

09:00 Arrival/Opening keynote segment (20 Minutes allowing for arrivals)

09.20 Paul Grenyer & Paul Foster Open event

09.25 Keynote- “Whoops”, and other classic programming phases by Dom Davis, (@Idomdavis).

Schools now teach algorithms and programming from the age of 5, so it’s hardly rocket science. Except when it is. And even when it isn’t it goes wrong a lot. I should know, I’ve been responsible for some of that wrongness. The trick is to learn from your mistakes, and to make sure that when it goes wrong, it does so in a way that no one will notice, and definitely not in the ways I’m going to spend this session talking about.

10:00 break

10:25 Guided technology task (2 hour activity)

In this activity students will learn how to blend software and hardware to build a modern digital device. Working in pairs, students will learn how the internet of things uses sensors and actuators to build intelligent feedback systems that can interact with the real world.

12:30 Lunch. (Allocated 1 hour)

Lunch is not provided.

A loop of inspirational technology videos will run during the lunch break to give students further ideas.

13:30 STEM student challenge (3 hour activity)

The STEM Student Challenge aims to help students connect the dots between the STEM subjects they study today and the impact those subjects could have on their ability to be part of the next generation of technology heroes. We invite students to use their knowledge of STEM subjects and marry it with research and creativity to imagine and depict their vision of technology in 2027.

The challenge is open to teams of 4-6 students in years 10 to 13. The challenge is to select one of the following categories and come up with an original technology idea that could exist in that field in 10 years’ time.

  • Artificial intelligence and virtual reality
  • Data Security
  • Healthcare

Students must depict or “pitch” their idea in the form of a two-minute video.

1. Form a team. Teams should be made up of 4-6 students.

2. Choose a category and start imagining! We’re surrounded by technology, whether it’s in our pockets, our homes or our schools, and it’s only going to become more central to our daily lives. Microsoft is working in areas that will change the way we work, play and look after ourselves and we want you to think about how these might look 10 years from now. So choose from one of the categories below, and get to work – come up with an original idea for a future technology. Challenge entries should reflect your team’s creativity and your knowledge of your chosen category.

You are part of the generation that will help bring the technologies of 2027 to fruition, so in doing this challenge, we hope you’ll think more about how you can be part of driving the exciting world of tomorrow’s technology. Each team should choose one category and submit one idea only.

3. Create a video. Create a video that depicts your idea. The tech doesn’t exist yet, so you’ll have to get creative! Make a science show, do a skit, demo a mock up prototype using available materials – just keep it under two minutes. Please make sure that your team is familiar with the judging criteria which you can find in this document.

4. Submit your entry. Upload your video to OneDrive by 16:20

Video Entry Judging Criteria

1. Originality of idea Does the technology idea show creative thinking? Does it stand out from the crowd? Is the idea unique and original?

2. Quality of research methods Have the team shown the research that they have undertaken to lead them to their technology idea? Does the video demonstrate that the team has researched and understood the category they have chosen?

3. Understanding of STEM subjects How well does the video entry demonstrate a sound knowledge in one or more STEM subjects?

4. Quality of presentation and clarity of idea Is the video well presented, clearly describing the future technology idea? Have the team presented their idea in a creative, interesting and entertaining way?

5. Is it feasible? Have the students demonstrated how their technology idea could be possible in the year 2027?

6. Evaluation of the process Have the team demonstrated what they’ve learned from the experience of coming up with their technology idea?

7. Judging will occur after the event with schools being notified of results by the end of February

16:30 Close (dependent on lunch break length and required school departure time)

NorDev: Pre-Conference Special



Pre-Conference Special: Machine Learning & Take the risk out of Digital Marketing

Warm up for the main conference day with the pre-conference special.

Date: Thursday, 23rd February 2017

Time: 5.30pm – 7pm

Location: The King’s Centre, Norwich City Centre

R.S.V.P: http://www.meetup.com/Norfolk-Developers-NorDev/events/233466379/

Take the risk out of Digital Marketing
Marcus Hemsley
Fountain Partnership

In this talk Marcus Hemsley will outline how the most successful Digital Marketing Campaigns minimise risk through accurate forecasting and testing. He will outline the three most important numbers to consider before you take a product or service to market, and discuss the most common mistake businesses make when launching a new marketing campaign. He will conclude the talk by running through the most effective strategies for business growth in 2017.

Machine Learning
Darren Cook,
QQ Trend

Darren will be speaking about machine learning, specifically with H2O, a fast, scalable, open source machine learning system with APIs in R, Python, CoffeeScript (and quite a few others). After an introduction there will be a live coding session to show using deep learning on a hard machine learning problem. There might even be time for Q&A and to give away a couple of copies of my book: Practical Machine Learning with H2O, published by O’Reilly. All in 30 minutes.

Pre-Conference Dinner

Location: The Library Restaurant, Norwich City Centre

Time: 7.30pm – late

Price: £30 pp

An intimate dinner at a lovely local restaurant, limited to 25 places. Attended by speakers and organisers and affiliated sponsors and guests.

Find the menu here

R.S.V.P: http://www.meetup.com/Norfolk-Developers-NorDev/events/233466479

Sunday, 4 December 2016

Test-Driving JavaScript Applications

Venkat Subramaniam
ISBN-13: 978-1680501742

I wanted to start this review simply with "Wow! Just wow!", but that’s not really going to cut it. It’s true to say that when I first learned that there was going to be a book published called "Test-Driving JavaScript Applications" I was sure it was going to be the book I had been waiting for since at least late 2007 when I was forced to write JavaScript in production for the first time. It’s publication date was pushed back and back, so it really felt like I was being made to wait. However, I wasn’t disappointed and this book was everything I hoped it would be and more.

We all know JavaScript is evil, right? Why is it evil? It’s the lack of a decent type system, the forgiving nature of the compilers and an inability to write meaningful unit tests, especially for the UI (User Interface). It’s difficult to do a huge amount about the first two points, but now JavaScript can be meaningfully unit tested, even in the UI context, with Karma, Mocha and Chai. Test coverage can be measured with Istanbul and System Tests (referred to by Subramanian as Integration Tests - this is my one bugbear with the book) written with Protractor. All of this is described in Test-Driving Java Applications.

I think it’s important to read all of part 1, Creating Automated Tests. The chapters cover everything you need to know to get started writing unit tests for both server side code and UI code, how to test asynchronous code (very important in JavaScript) and how to replace dependencies with test doubles such as fakes, stubs and spies. It’s all demonstrated with a completely test first approach with excellent commentary about how this leads to good design.

I cherry picked from part 2, Real-World Automation Testing. I was only really interested in how to write automated tests for the DOM and JQuery and how to write ‘Integration’ tests. Other chapters included how to write tests for Node.js, Express and two versions of AngularJS. The DOM and JQuery chapter was excellent showing me exactly how to take advantage of test doubles to write fully tested JavaScript without having to fire up a browser, resulting in something I can make immediate use of.

The Integrate and Test End-to-End chapter, which describes how to use Protractor, was almost enough to encourage me to abandon Java (Selenium) for System Tests and move to JavaScript. However, while looking at the latest version of Selenium, there are some other things I want to investigate first.

The final chapter, Test-Drive Your Apps is the equivalent of Pink Floyd playing Run Like Hell at the end after Comfortably Numb. It’s still good, but is really there to help you wind down from the climax and could just as easily have been omitted, but it would feel a bit odd if it was.

If there was one more thing I could get from this book it would be how to send test and coverage results to SonarQube.

If you want to use JavaScript, intend to use JavaScript or are forced to use JavaScript, get this book and automated the testing of your JavaScript.

Friday, 2 December 2016

Naked Element produce a more efficient client-facing web presence for Bluemoon College


Bluemoon Investigations are a long established company, specialising in covert inquiries for both public and private concerns. From providing evidence to the court in cases of fraud, to tailing cheating spouses across the globe, Bluemoon have had over thirty years experience in getting to the truth. They also run a College training people how to become professional private investigators. They came to Naked Element with a desire to have a better and more efficient client-facing web presence for the College.

Online marketing agency Clark St. James had been working with Will Clayton, Director of Bluemoon, to improve their web search rating, and recommended Naked Element to him for a new website. “Our old website wasn’t branded, slow and not working for us, we needed a whole new design to improve communication, speed and our web presence to potential business.” Our designer Shelley took on the challenge and worked closely with Will to get the result Bluemoon wanted. “The process was easy and straightforward – Shelley made design suggestions, and we approved those we liked, and the build was quick and painless! We’ve received prompt help and support for the small changes we’ve requested since the site went live too. There were some style changes I wanted to make, which Shelley explained could be difficult, but Naked Element worked hard to resolve them and give me what I wanted.”

The result is a responsive website that welcomes potential clients and provides Bluemoons’ service details in a clear and user-friendly way. From Shelley’s point of view the process was mostly plain sailing. “The only challenge I had was super tiny – it was to do with text layout on one page. Most people approach web design like magazine design (which has a fixed size and layout), so they assume you can be pixel perfect. Due to different screen sizes, that’s not always possible, but there are always workarounds so it was a case of trying to get the right balance across all screen sizes.”

“Will can be a bit of a perfectionist, which is really nice actually – he’s not at all picky but is great at noticing detail. Working with him was nothing but a pleasure.” And from Will’s point of view? “I haven’t had to be involved much with Naked Element in all honesty – the whole process has been painless and relatively easy, which is exactly how it should be.”


A class what I wrote

When I was a member of the ACCU their regular publications always appealed for people to write articles for them. There were a few suggested topics, but the one which stuck in my mind was to write about a class you'd written. I often used to wonder about doing this, but it's quite difficult as I rarely wrote a class which was stand alone enough to write about, without having to write about a load of other classes too. Maybe that's a symptom of a design which is not loosely coupled, but I'll leave that for a late night discussion with Kevlin Henney.

Today I wrote such a class, and was very pleased with it as it reduced a lot code which was repeated in a number of methods down to a single line of code - it even manages a resource! Here's the code I started with:


try
{
    final OutputStream os = response.getOutputStream();

    try
    {
        IOUtils.write(JsonTools.toJson(...), os, "UTF-8");        
        response.flushBuffer();
    }
    finally
    {
        os.close();
    }
}
catch (IOException e) 
{
    log.warn(e);
}  

It's Java. It gets an output stream from a HttpServletResponse instance passed into a Spring MVC controller method, writes some JSON to it, flushes the buffer and cleans up. If there's an error and an exception is thrown, the output stream is still cleaned up, the exception is handled and logged. All reasonably simple and straightforward.

With the class that I wrote, it's reduced to:

try
{
    new ServletResponseWriter(response).write(JsonTools.toJson(...));
}
catch (ServletResponseWriterException e) 
{
    log.warn(e);
}

An instance of the class is initialised with the HttpServletResponse instance and a single method called to write the JSON to the output stream. If an error occurs and an exception is thrown, it's handled and logged, just as before.

There is far less code to maintain by using the class instead of repeating the original code.

Let's take a look at the class itself, ServletReponseWriter:

public class ServletResponseWriter
{
    private static final String UTF8 = "UTF-8";
    
    private final ServletResponse response;
    
    public ServletResponseWriter(ServletResponse response)
    {
        this.response = response;
    }
    
    public void write(String data)
    {
        write(data, UTF8);
    }
    
    public void write(String data, String encoding)
    {
        try
        {
            final OutputStream os = response.getOutputStream();

            try
            {
                IOUtils.write(data, os, encoding);                
                response.flushBuffer();
            }
            finally
            {
                os.close();
            }
        }
        catch (IOException e) 
        {
            throw new ServletResponseWriterException(e.getMessage(), e);
        }
    }
}

Let's start at the top and work our way down. The constructor takes a ServletResponse which is an interface implemented by HttpServletResponse containing the getOutputStream method. The ServletResponse is saved within the class as an immutable field.

The first of the write overloads allows the user of the class to write to the output stream using UTF-8 without having to specify it every time. It calls the second overload with the UTF-8 encoding.

The second write overload is much the same as the original code. It gets an output stream from the response and writes the supplied string to it, flushes the buffer and cleans up. If there's an error and an exception is thrown, the output stream is still cleaned up, the exception is handled, translated and re-thrown.

The keen-eyed among you will have noticed that there are two new classes here, not just one. I'm not a fan of Java's checked exceptions. They make maintenance of code more  laborious. So I like to catch them, as I have here, and translate them into an appropriately named runtime exception such as ServletResponseWriterException.

ServletResponseWriter implements the finally for each release pattern of the original code and the common pattern implemented by classes such as Spring's JDBCTemplate which wraps it in a reusable class intended to manage resources for you.

Resource management is vital, but the real advantage here is that the code is more concise, more readable and reusable. And, I've had the chance to write about a class I once wrote.



Sunday, 20 November 2016

Norfolk Developers Event: Breakfast with Clive Lewis MP


What: NorDev Breakfast with Clive Lewis MP

When: Friday, 9th December 2016, 7.30am to 8.30am

Where: The Maids Head Hotel, Tombland, Norwich, NR3 1LB

How much: £11

RSVP: https://www.meetup.com/Norfolk-Developers-NorDev/events/232228431/

Clive Lewis MP will lead a general discussion about what the tech scene needs in Norwich to grow, employ more people and provide opportunities for young people from non-traditional backgrounds.

MAKE YOUR VOICE HEARD AND BE PART OF TECH NATION 2017!



Tech Nation 2016 provided the most detailed analysis to date of how the digital sector is driving economic growth, showcasing the innovation and energy of tech hubs across the UK.


In 2017 Tech City UK will take an even more in-depth look at how the digital economy is evolving, giving a greater voice to the UK’s tech communities and highlighting the considerable progress they are making.

To do this we need to hear from everyone who works or operates within the sector. So whether you’re part of a tech business, an academic, investor or another member of the ecosystem please take just seven minutes to complete the survey and share the link with your network.


Around 40 companies who complete the survey will be featured within the report as a case study! Thank you for your time.

Sunday, 30 October 2016

The Forever War: Forever War Book 1

Joe Haldeman
ISBN-13: 978-0575094147

I don’t remember who it was, but someone suggested I read The Forever War when I got into the Space Operas of Alastair Reynolds. I couldn’t find it on the kindle for ages, so a hard copy of the omnibus edition sat untouched on my shelves for quite a while. Then it became available on the kindle.

The Forever War Book 1 is good, I enjoyed it. I liked the characters and the first person style works really well. I am sure in the 60s it was revolutionary maybe even shocking, but, as with a lot of old sci-fi, it is of its time and feels antiquated next to the technology we have today.

In terms of scope, it’s nowhere near as vast as anything by Alastair Reynolds and I think this was my biggest disappointment. I was interested to read that a lot of the inspiration for the story came from the author's experience in the Vietnam war. If it hadn’t been mentioned I certain wouldn’t have known. I did spend a good deal of my reading time trying to see how the futuristic battles and enemy might relate to the Vietnam war.

The two sequels were written much later. I’m hoping they’ll be better.

Sunday, 16 October 2016

Norfolk Developers: How email works... & Fabric

James Taylor


What: How email works... & Fabric

When: Wednesday, 9th November 2016, 6:30pm to 9:00pm

Where: The Union Building, 51-59 Rose Lane, Norwich, NR1 1BY

RSVP: http://www.meetup.com/Norfolk-Developers-NorDev/events/233466373/

How email works... and why you should care. 
Steve Engledow (@stilvoid)

A brief history of some of the aged protocols that underpin the internet and email in particular, a look at the security implications of the way email works, and some steps you can take to improve your safety.



Fabric: Fast one line consistent deployments across multiple servers 
James Taylor (@jmons)

For small organizations, or even hobbyists, deploying modern systems can become annoyingly complex. There are several solutions which we’ll look at briefly, before doing a deep dive and demonstration of how I use “Fabric” to do controlled continual deployments with no stress and maximum fun. In this session we will be doing a live-code demonstration, as well as taking continual questions and heckling is encouraged. Even if you can’t code, but manage sysops or coders, hopefully you’ll get to see what low stress deployments can look like.

James Taylor

James works at Proxama by day inventing new and interesting methods of payments, and works on various startups at night (@getimperium, tether). He despises all programming languages, but some more than others, and is currently the NorDevCon "Just a Minute : Technical Edition" reigning champion (mainly due to a rant about PHP). (This profile contains an annoying mismatched bracket.

Saturday, 15 October 2016

Good Code: Kevlin Henney Full Day Workshop


What: Good Code: Kevlin Henney Full Day Workshop

When: Wednesday, 23rd November 2016, 10am

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

How much: £35.00

RSVP: http://www.meetup.com/Norfolk-Developers-NorDev/events/233531472/

Good Code 
Kevlin Henney (@kevlinhenney)

We often talk about good code — that we would like to write it, that there isn't enough of it, that it should not be considered an optional attribute of a codebase. We often talk about it but, when it comes to being precise, we don't always agree what constitutes good code, nor do we necessarily share a common view on its value.

This one-day tutorial and workshop explores what properties we want from a codebase and, therefore, what we can deduce to be good. These conclusions can sometimes be surprising and counter-intuitive! This session will explore some common guidelines on what is considered good, from expression to subsystem, from naming to tests, from fluent to SOLID. We will look at the consequences of good and not-so-good code from point of view of economics, day-to-day work, people and runtime performance and reliability.

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.

Saturday, 8 October 2016

Naked Element’s software for Fountain reduces processing time by 95%


Fountain Partnership Limited are a digital marketing company based in Norwich, established in 2008. With a team of experts, Fountain are able to identify a company’s growth opportunities and build a customised strategy for the best results and command market share. Their strategies drive browsers to client’s websites, increasing opportunities to convert browsers into customers and then increase customer value by testing and measuring. In order to do this, they specialise in the optimization of search engines and conversion rates, as well as pay per click advertising. In order to do this, Fountain uses a combination of pay-per-click advertising, search engine optimisation and conversion rate optimisation.

The problem Fountain were faced with was a time consuming one. When advertisements needing changing or updating it was a painstaking process. They had to upload a new set of adverts from a spreadsheet, going through each one manually to pause all of the old adverts in order to make room for the new ones. it would take days in some cases.

“What was taking 20 hours of work is only now taking an hour.”

Naked Element were chosen to build a script which would allow Fountain to manage one of their largest clients in Google AdWords, saving time and ultimately money. This particular client currently had 75 individual accounts. What the Fountain team were doing to update these was logging into an account, creating the new adverts, then log out of that account, then log into the next one 75 times over!

So what was Naked Element’s solution? In simple terms a script was created that allowed the user to specify AdWords accounts, campaigns and ad groups and then to enter a search, replacing each with a phrase or word. When running, the script would look through all of the ad groups in the campaigns specified and would copy the ads found with the search phrase, update the field with the updated phrase and pause the previous ads.

For example: A client has a campaign called ‘Car Sales’ with three ad groups – blue, red and black. Within those groups there are ads with the description “newest model”. The search phrase “newest model” is entered, followed by the update phrase “drive away today” and the script is run. All of the previous ads with “newest model” will be paused and replaced with the new ads containing the phrase “drive away today”.

“By developing this software to improve process efficiency, Naked Element has saved us four weeks worth of work per year!” said Laura Jennings, Strategic Director at Fountain. “The script they built us is saving up to 95% of our processing time. What was taking 20 hours of work is now only taking an hour – a big saving. ” When software produces such immediate benefits, the advantages are clear.

“The process of working with Naked Element was really straightforward, they tried hard to extract the correct information from us. Lewis, the developer, came out to see us several times. Documentation was also really easy to understand.” The only issue Fountain had was during the creation of the script, as it didn’t always work quite as expected. “However Lewis was quick to identify and resolve the problems. It was never too much trouble to sort out an issue and assistance was always available via telephone.”

Sunday, 2 October 2016

Ever wondered what an algorithm is?

Algorithms are everywhere. Our children are even taught about them at school, but have you ever found yourself wondering what an algorithm actually is? Maybe you’ve thought they’re something used by computers and created by computer programmers, but don’t really know what they are?

The dictionary defines  an algorithm as:

“A set of rules for solving a problem in a finite number of steps.”

Algorithms come in all shapes and sizes. They can be extremely complicated, but they can also be very simple and easy to understand.

Examples of more complex algorithms include those used to price financial products in a bank or to determine the best route between two points in a satellite navigation system. Simpler algorithms include those used to sort lists of numbers, such as Bubble Sort.

Bubble Sort

Bubble Sort is one of the easiest algorithms to understand. As its name suggests, it’s an algorithm used for sorting. Often the easiest list of things to sort are numbers. Bubble Sort works by comparing each number in the list to the number next to it and swapping them with each other if the numbers are in the wrong order. This process is performed again and again until a pass over the list requires no swaps. At this point the list is sorted. Knowing when to stop sorting the list is just as important as knowing how to sort the list. As we know when to stop (when a pass has no swaps), Bubble Sort can be used for lists of any size.

The easiest way to demonstrate Bubble Sort is with a simple example. Take the list of numbers:

3, 2, 1

We can use Bubble Sort to reverse the list. The first time we pass over the list the first two numbers are 3 and 2. 3 is greater than 2 so we swap them over:

2, 3, 1

Next we compare 3 and 1. 3 is greater than 1, so we swap them over:

2, 1, 3

There are no more pairs of numbers to compare on this pass and there were two swaps (3 & 2 and 3 & 1) so we pass over the list again. The first two numbers on the second pass are 2 and 1. 2 is greater than 1, so we swap them over:

1, 2, 3

Even though we have successfully reversed the list, we’re not finished. Next we compare 2 and 3. 2 is not greater than 3 so we don’t swap them. There are no more pairs of numbers to compare on the second pass and there was a single swap (1 & 3) so we pass over the list again.

1, 2, 3

The first two numbers to compare are 1 and 2. 1 is not greater than 2, so we don’t swap them. Then we compare 2 and 3. 2 is not greater than 3 so we don’t swap them. There are no more pairs of numbers to compare on the third pass and there were no swaps so we’ve finished and successfully reversed the list.


Sorting Algorithms in the Real World

Bubble Sort is taught to trainee software engineers as it’s easy to understand and implement. However, it’s rarely actually used in the real world as it’s inefficient and there are other more efficient sorting algorithms, such as Quicksort, which are only a little more difficult to understand implement.

Sorting occurs in all sorts of systems in the real world. One example is in the software used to sort mail into the order a postman will deliver it as he walks along his round. Postcodes and other address elements are read into the system and sophisticated algorithms used to sort the mail into the correct order.

The next time someone mentions algorithms to you, remember it’s a set of rules for solving a problem in a finite number of steps.

Sunday, 25 September 2016

Humanizing Tech & The evolution of SEO and is it dead?

What: Humanizing Tech & The evolution of SEO and is it dead?

When: Wednesday, October 12, 2016 - 6:30pm to 9:00pm

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

How much: Free

RSVP: http://www.meetup.com/Norfolk-Developers-NorDev/events/233466352/

Humanizing Tech 
Karen Longdin

Being brilliant technically is only half the battle when it comes to being successful within a business. An exploration of how to humanize technology to two ends:

To converse with your business, get your point heard and your projects sponsored.

And to manage and lead other technical people and teams who may know more, better or different to you; what happens when your technical knowledge is no longer enough?

Karen Longdin 

As Head of IT Development and Architecture for Wyndham Vacation Rentals UK, Karen heads up a team of developers and QA engineers working across Web, back end, reporting and third party systems. Previously having been Head of IT at Stansted Airport and Acting IT Director of Suffolk Police Karen has worked across a variety of industries both private and public sector with a mix of internal and outsource arrangements and across the breadth of technical disciplines. Beginning her career in software testing and moving through various process disciplines most of Karen’s work has been enabled by great business relationships looking for outcomes that work on both sides of the fence. Having been responsible for some heavy weight austerity driven programmes and then the technical separation of Stansted Airport from Heathrow post sale, working now in an environment that is driving investment for profit is a breath of fresh air and allows some much needed time to reflect on, and share, some of the skills and tips Karen’s gained over the years.



The evolution of SEO and is it dead? 
Ellie Morgan

It’s 2016 and once again SEO is dead. We review why SEO is still important and look at the evolutive journey SEO and digital marketing practices have taken over the past 10 years.

Ellie Morgan

Ellie heads up the dedicated search division at Studio 24 and is a, dedicated digital marketing professional. An Illustration graduate from Anglia Ruskin University, she fell down the rabbit hole of online marketing at the Norwich-based empire Jarrold & Sons. Following this, she moved to Westland Horticulture group working over several websites mainly with SEO, content management, email design and marketing.Since being at Studio 24, Ellie has worked with a variety of brands giving her and the search team a wealth of knowledge to work with budgets of all sizes, while providing the best possible results. For Ellie the most important thing about SEO and digital marketing is to consider the user above all else.

Wednesday, 21 September 2016

Spring Boot in Action

by Craig Walls
ISBN-13: 978-1617292545

You can be pretty sure of what you’re going to get with a Manning ‘In Action’ book and Spring Boot in Action is no exception.  It’s clear, friendly while not being over familiar and above all a pleasure to read. In fact I struggled to put it down. I’ve got back into reading recently, but this is the first technical book I have fully read for quite a while.

The thing is I’m a huge fan of Java. This brings me into a lot of ridicule. There are lots of other software development technologies such as Ruby on Rails and Node.js which are arguably more productive because they do a lot of the standard web application boilerplate for you. The Spring library provides the Java developer with a lot of web application boilerplate as well, but there is no getting away the fact that Java is more verbose than some of the other options and you need a lot more code and configuration to wire the boilerplate together.

Enter Spring Boot. Spring Boot is about taking away a lot of the pain of developing Java web applications with Spring. Spring Boot automatically configures most of a Spring Web application for you. It takes care of most of the dependency management and servlet configuration and creates and injects commonly used beans into the application context as, when, and if they are needed. This drastically reduces the amount of code and configuration you need to write and it’s clever enough to work out which dependencies you need and employs tested configurations to make sure they play nicely together. Plus you can reduce the amount of code further by writing your application in Groovy or a combination of Groovy and Java. You can even take advantage of Grails.

Suddenly Java becomes a lot more competitive in terms of productivity with Ruby on Rails and Node.js, with the added advantage of a statically type, non-interpreted language running on the JVM. I’ve frequently seen Java Spring web applications outperforming similar Ruby on Rails applications. These are very exciting times indeed for Java.

Spring Boot in Action clearly explains all of this and more including running an embedded tomcat and testing with Selenium. It’s not a long book and the last 35% or so is appendices, but it’s the sort of useful information you need as a Spring Boot developer. Being short also means that Spring Boot does feel like a massive mountain to climb and conquer.  If I had one criticism of the book, it would be that the chapter on deployment should be near the beginning, not right at the end.

Naked Element will soon be developing their first Spring Boot application and we’re really looking forward to it.

Thursday, 1 September 2016

The New One Minute Manager

Kenneth Blanchard & Spencer Johnson
ISBN-13: 978-0008128043

I'm not and have never been a people person, but I try. I am and have always been a techy. I managed teams at two different companies before I formed Naked Element. In both cases I was as green as I was cabbage looking. I had a lot to learn about managing up and down and what encourages and discourages people. Unfortunately I didn't have the best guidance either.

When I want to get better at software development or Agile or something else technical, I consult experienced people to learn. In most cases, for me, this involves reading a book. So why should it be any different for people? Well, people are more complex than software development, Agile or any other tech, but that doesn't mean we can't learn from other's experience.

The One Minute Manager is a book about people and how to get the best from them. It describes three practices to help. One of the best things about the book isn't just the excellent advice with clear examples and explanation, but the fact it's easy to read and takes only a few hours. I read most of it one evening and finished it the next morning.

I'm not going to list the practices here - go read the book. It showed me what I was doing wrong, why what I was  doing didn't work and how I could improve. It's not a silver bullet, there is work I am going to have to do to get better.

The only criticism I have, other that some of the cheesy dialogue, is that there are no written examples of the first practice. I'm having to go to other sources for this, but at least they're readily available.

If you feel you could be better at managing people, and even if you think you're already good at it, start with this book and get better. I've already started doing the practices and I'm looking forward to the results.

Monday, 29 August 2016

The Medusa Chronicles

The Medusa Chronicles
Alastair Reynolds & Stephen Baxter
ISBN-13: 978-1473210189

Arthur C. Clarke was my favourite author for many years and I loved his collaborations with Stephen Baxter. Baxter brought a new dimension to Clarke's, not just science fiction, but science based fiction. The stories became more human, more exciting and had better characters. So when my current favourite author, Alastair Reynolds, got together with Stephen Baxter to write a story based on other writings by Arthur C. Clarke it had the potential to be something fantastic. And it is!

I love stories with references to other stories and pop culture and the Medusa Chronicles is riddled with them. I've complained about Interstellar (film) being a rehash of Clarke's 2001 in a previous review and there are plenty of references and similarities to 2001 here, especially with the exploration of inner Jupiter and the events which take place inside the sun.  However, in the Medusa Chronicles, this is the amazing climax to an all round superb story.

The main character, Howard Falcon, is superbly flippant, sarcastic, cynical and intelligent. He is surrounded by other equally brilliant and well thought out characters. The machine, Adam, is one of the better rehashings of HAL and captures, the young and naïve, yet brilliantly intelligent and developing intelligence perfectly.

If, like me, you're longing for Reynolds to recapture his Revelation space glory, then the Medusa Chronicles, along with Slow Bullets, is the book for you and it goes a long, long way.

Next I'm moving on to The Forever War by Joe Haldeman. A new author for me and, apparently, superb space opera.

Wednesday, 24 August 2016

Talking Technology 2016


Naked Element are going to be at the Norfolk Chamber Talking Technology 2016 event on 21st September, why not come along and see us?

Talking Technology 2016

An interactive event aimed at developing the use of digital skills and innovative technologies in business to boost productivity and profitability.  

Talking Technology will feature expert local and national key note speakers, practical workshops, an expert exhibition and plenty of networking opportunities, including a networking lunch.

  • 15 speakers
  • 4 workshops
  • 16 exhibitors (including Naked Element!)
  • 150+ businesses
Register for your tickets here: http://www.norfolkchamber.co.uk/featured-event/page/tickets-3

We look forward to seeing you there!

Monday, 22 August 2016

Pure Metal Comes to Norwich: Arch Enemy & Soilwork

I don’t recall if I’ve seen Soilwork before, but I’ve always been aware of them. When I discovered they would be playing with Arch Enemy I bought up a lot of their stuff and started listening to it. As metal goes it’s ok and very listenable. Live they were much the same. Thier sound wasn’t all it could have been, and I initially put that down to the Waterfront PA. For a bunch of clearly aging blokes they were really rather good and had lots of energy. I wouldn’t go to just see them again, but I’d check them out if they were on the same bill as someone else I wanted to see.

Arch Enemy are one of my all time favorite bands. I’ve seen them several times, but never in a venue as small as the Waterfront. I’ve never been disappointed with Arch Enemy and on this occasion they were better than all of the bands (including Symphony X, Fear Factory and Vallenfyre) I saw last weekend at Bloodstock. Which is disappointing in itself!

This was the first time I’d seen Arch Enemy with the singer who replaced Angela Gossow a couple years ago, Alissa White-gluz. Alissa was every bit as good as Angela, if not better.


I couldn’t have asked for a much better set, my favorites from Doomsday Machine (although a run through of the whole album would have been even better), several of my favorites from Khaos Legions and from War Eternal, as well old favorites like Dead Eyes See No Future and We Will Rise.

They played a sold, entertaining 90 minutes. Michael Amott can really play (guitar). Unlike Soilwork, I could hear every note, suggesting the PA at the waterfront wasn’t that bad, but Soilwork’s setup was.

What we need now is a new album and a headline slot at Bloodstock 2017.


Saturday, 20 August 2016

A review of Bloodstock 2016

Bloodstock is one of the highlights of my year. It’s a chance for me to get away from it all (well, most of it), listen to some fantastic music and catch up on reading.

Friday

Gloryhammer are a band I’d never heard of.  Surprisingly good sci-fi based power metal. Lot’s of fun and not to be taken too seriously.

Evil Scarecrow were just Evil Scarecrow which means lots of robot and crustacean oriented antics. I’m always pleasantly surprised how much they often sound like Slayer.

Then for the first band of the day I really wanted to see, Misery Loves Company.  I first saw them in Bradford in the 90s when they were at their prime. Unfortunately those days are gone and I felt they didn’t play as well as they could have done, but their set was full of old classics. I wonder if there might new a new album on the way,

Stuck Mojo and Corrosion of conformity I’ve seen before. I wasn’t that impressed then and nothing has changed now.

Venom I had really been looking forward too and I was only slightly disappointed. Thier sound lacked a second guitarist, especially during the guitar solos. They opened with a couple of songs from their new album, which is very good, played some of my favorites like Evil One and closed, of course, with Black Metal, which I know best from the Vader Cover.

Behemoth were always going to be brilliant. I don’t think they had the best PA sound and I’m not sure if Nergal is lost in the theatrics or disappearing up his own backside. The band did leave the stage a lot between songs. They played latest album The Satanist all the way through and it was amazing. A great stage show, fantastic lighting and even black confetti, although the wind had other ideas.

I wasn’t looking forward to Twisted Sister. I have their greatest hits album and the sound is tinny and under produced. Thier live sound is full bodied and really rather good, especially with ex-Dream Theater drummer Mark Portnoy on drums. However, they were late to the stage, went on too long and had far too much to say! Roll on Saturday.

Saturday

Kill II This. Passed the time. I read my book.

Vallenfyre just blew everyone else away. A fantastic sound from the PA, heavy and both slow and fast songs. Everything I hoped they would be and more.

I seem to remember quite enjoying Akercocke the last time I saw them at Bloodstock. They were ok this time, despite some spectacularly bad guitar playing and/or tuning. It seems to improve as they went on. It was good to hear them try out some new material.

I'd been looking forwarded to Rotting Christ. I used to have an album of theirs which I listened to alot 20 years ago. I bought some of their other stuff, but it wasn't as good and in the end I sold it all. At Bloodstock they started off very disappointingly, but by the third song they seemed to find their feet and remained solid for the rest of their set.

I didn't realise Fear Factory were performing all of Demanufacture. Initially I was disappointed as I really like their new stuff. They are one of the few bands who came back better than they were before. I wasn't disappointed for long. They were incredible, even better than Vallenfyre. Fear Factory are another band with only one guitarist, but this didn't impede their sound at all.

I don't like being wrong, but I was about what Paradise Lost’s performance was going to be like. I didn't have high hopes. To me they're a decent metal band who haven't had a good album since the mid-nineties. I was expecting them to play recent stuff, but they didn't. They reached back, sometimes a long way, into their considerable back catalogue and were heavy and doomy and pretty amazing! Paradise restored.

It gets better! I was looking forward to Gojira a lot! Knowing they were playing I've been collecting all their albums and the new one, Magma, has been a regular for me recently. I had high hopes and I wasn't disappointed. Fantastic band, playing fantastic heavy metal.

I wasn't wrong about Mastodon and I still don't know what all the fuss is about or why they're a headline act.

Sunday

Heart of a Coward, from roundabout ridden Milton Keynes, weren't bad, probably tried to hard, but were nothing to get excited about.

Unearth were better than I remember them being when I saw them support Lamb of God, but even Dimmu Borgir weren't great that day! At bloodstock Unearth were heavy, tight and enjoyable to listen to.

Stoner isn't really my thing, but Jukebox Monkey, the only band I watched on the Jagermeister stage this year had a fantastic, clear and sharp sound. I really enjoyed some of the lead guitar work too.

The Metal Allegiance should have been so, so, so much more. Very sure of themselves and what they were doing in the name of metal, but really just capitalising on the recent spate of rock and metal deaths. Just rubbish.

Satyricon appeared to have a few technical problems before they got down to some fantastic traditional Black Metal. They played most of the Nemesis Divina album and ended with some of their more recent tunes, such as Black Crow on a Tombstone.

Fortunately Dragon Force were exactly as expected, fun and fast! They had a great sound, with perhaps too much kick drum, but the vast amount of guitar widdling and the phenomenal singing made up for that. I've waited to see this band for a long time. Their album before last was amazing, the more recent one not so much. Unfortunately, due to technical problems at the start, they had a very short set.

Symphony were the band I wanted to see the most this weekend and I wasn't disappointed. They blew everyone else away. The guitar playing, the singing, the songs. Wow! Just wow!

Pythia I saw support Threshold a few years ago and they were quite good. I gave them a go on the Sophie Lancaster stage and was super impressed. A much better performance than when I saw them before and much better songs! Bought their latest album from Amazon stood the crowd.

Slayer were Slayer. A few tracks from their new album, which is superb, and all of the classics. Solid, but unexciting. Worth hanging around for at the end of the weekend, but I probably wouldn’t again.

Wednesday, 17 August 2016

Scream if you want to go faster (scaling computer hardware)

When the deadline for registering to vote in the UK EU referendum approached there were issues with the online registration system. It stopped working due to the high numbers of people trying to register all at once. The system failed to scale and fell over. By scale, I mean that the hardware was no longer powerful enough to service all of the requests made of the software it was running and it was unable to become more powerful.

There are two main ways to scale computer hardware, vertically and horizontally. Most software can scale vertically, regardless of how it’s designed. To scale horizontally special design considerations must be taken into account.

Vertical Scaling

Imagine you’ve got 1000 people to move from point A to point B 10 miles away and a car which can hold 5 people and travels at an average speed of 60 miles an hour. That means it takes 10 minutes to get the car once from point A to point B. Ignoring the return journey and including the driver in the number of people moved, it would take 200 trips, at 10 minutes each, which is 33 hours.  That’s pretty slow.



If we use the same car, but with a more powerful engine which can travel at an average speed of 120 miles an hour, it now takes 5 minutes to get the car once from point A to point B and a total time of 16.5 hours. That’s already a good improvement.


If we swap the car for a minibus which can hold 20 people and can still do an average speed of 120 miles an hour, the time comes down to 4 hours. If we continue to upgrade to more powerful engines and use bigger busses we can bring the time down significantly.




This is an example of vertical scaling. By increasing the processing power (engine) and the memory (number of people the vehicle can hold) in a computer we can increase how quickly it responds to users. However, you can only increase processing power and memory to a point. There is a threshold where it becomes impractical to scale further and another where it is no longer cost effective.

Horizontal Scaling

Imagine you’ve got the same 1000 people to move from point A to point B and two minibuses which hold 20 people each and travel at an average speed of 120 miles an hour. Both minibuses take 5 minutes to get one from point A to point B.  Ignoring the return journey and including the driver in the number of people moved, it would take 25 trips, at 5 minutes each, which is 2 hours.



If you use 4 minibuses the time comes down to 1 hour.  If we continue to increase the number of minibuses we can bring the time down significantly.



This is an example of horizontal scaling. By increasing the number of computers which are working together in parallel we can increase how quickly the overall system responds to users.

Saturday, 13 August 2016

Slow Bullets

Slow Bullets
Alastair Reynolds
ISBN-13: 978-1616961930

I can't tell you how pleased I am to be able to say that, in my opinion, Alastair Reynolds is back on form! Slow Bullets is a very short book and it's written in the first person, which isn't my favourite style, but that's about the only criticism I have of it.

The story is great, well thought out and very much of our time and what could happen in the future as we rely more and more on electronic storage of data.

I could relate to all of the characters and it was great see so many female leading characters.

It took me about a week to read, but had I had a day to myself I could see myself ploughing through it in a day.

On to the Medusa Chronicles.