Tuesday, 31 October 2017
Defining what it is to be a machine is tricky to say the least. In everyday terms a machine is something man-made that performs an automated function. Computers are often referred to as machines but they are much more than the limited definition above. Perhaps, instead of trying to pin down exactly what a ‘machine’ is in the 21st century, it would be more pertinent to define what a machine is to us.
Isaac Asimov once described machines as ‘the true humanising influence’. In his mind machines would only be used to perform functions and carry out tasks that make life possible, leaving humans more time to do the things that make life worthwhile. Essentially through their ability to perform mundane but necessary actions, machines would allow us to indulge in every part of life outside basic functions, to allow us to enjoy what it is to be human. From a more modern writer’s point of view, machines have gone beyond their initial point of freeing us to taking us over. Stephen King focuses stories on machines gone mad in our increasingly automated world. In his film ‘Maximum Overdrive’, a classic Eighties trashy horror, any machine with moving parts becomes homicidal. Lawnmowers, Walkmans, vending machines and lorries are all affected by a passing comet’s radiation (don’t think about it too hard, it’s not meant to be taken seriously), come to life and start killing people. The only solution (spoiler alert) is to find a place where there are no machines, hide there and wait for the astrological phenomenon to pass. In the film our plucky heroes manage to find a sailing boat and a completely deserted island in the middle of a lake, but in reality finding a place without the presence of even the most basic machine would be practically impossible. In his book ‘Cell’, King uses the ubiquity of the mobile phone to reset the whole of humanity back to its animal instincts. Anyone who doesn’t have a cell phone at the time is soon killed and eaten by those that did. In his view technology and automation are so pervasive that they can plausibly (forgetting the green comet radiation) be used to cause global disasters affecting the whole of humanity. Not a virus or giant tidal waves, but machines we invented and built ourselves.
Conversely, anarchic cartoon South Park showed us that while we might think we don’t need machines, we still want them, especially when it comes to fulfilling mundane, everyday tasks. Characters in a recent episode complained that they were losing their jobs and being replaced by machines, but when given the chance to work as the electronic assistant ‘Alexa’ in the Amazon Dot device, they found the job so demeaning they quit. They realised that adding items to shopping lists and playing songs on demand were jobs that were beneath human beings and left Alexa to it. Who knew that technology would evolve to the point where an episode of South Park would prove a point made by Isaac Asimov nearly fifty years earlier?
Popular culture and plot devices aside, machines, of any kind, were created for a purpose – to make things better. Either to speed up processes, increase yield, reduce workload; to make things safer, quicker or more accurate. When we see a machine in this way, they become a tool to be used, rather than technology to be relied upon. We choose to use them, rather than to not be able to live without them. Rather than our future coming crashing down on us because of our reliance on our own creations, machines will hopefully become assistants to our way of life and give us more time to enjoy it. As Asimov said “It is machines that will do the work that makes life possible and that human beings will do all the other things that make life pleasant and worthwhile.”
Originally published: Naked Element
Saturday, 28 October 2017
Right from the opening track it’s clear why WASP’s 1992 masterpiece is the ultimate heavy metal album. Line up changes have always plagued WASP and by the time of the Crimson Idol, long time guitarist Chris Holmes had left the band and only Blackie Lawless was left. Did it matter? No, Blackie writes everything anyway and on The Crimson Idol he played everything except drums and lead guitar.
The first thing you notice is the the drums. They’re different and significantly better and more intricate than on any other WASP album. Then there’s the lead guitar work. Chris Holmes is good, but he’s no Bob Kulick (brother of Bruce who played with KISS in the early 90s). Of course you’ve got that signature BC Rich guitar sound and when you combine all of this, Blackie Lawless's unmistakeable vocals and a heavy dose of the ‘higher you fly the further you fall’ concept album lyrics culminating in the The Idol, the best song with the best guitar solo ever, it makes for a magnificent album.
However, I’m increasingly of the opinion that Blackie Lawless and long time bass player Mike Duda are beyond giving a shit and just going through the motions. They barely move, Blackie spends quite a lot of time with his back to the audience and only speaks to us briefly in the encore which consists of just four songs. Neither smile. Blackie looks a mess. Mind you, so does most of the audience. Adding insult to injury and complete contempt for the audience, Blackie doesn’t switch to an acoustic guitar for The Idol. Playing those parts on electric guitar changes and degrades the song. Fortunately Doug Blair and new drummer Aquiles Priester are superb musicians and showmen throughout. The definition in the UEA LCR PA could have been better.
Doesn’t sound like I enjoyed it does? I did! It was fantastic. It was amazing to step back into my teenage years of 25 years ago. 2015’s Golgotha is the only good WASP album since 1995’s Still Not Black Enough and the title track was a fantastic bonus in the encore. WASP have consistently released albums over a long career. They don’t seem to be going anywhere soon, so if you get the chance, go and see them. You’re unlikely to be disappointed.
Sunday, 22 October 2017
Software Patterns became popular with the publishing of the Gang of Four book, “Design patterns: elements of reusable object-oriented software” (ISBN-13: 978-0201633610) in 1994. It contains a number of patterns, most of which every developer should know, even if it’s to know to avoid the likes Singleton. However, these aren’t the only patterns! Indeed, patterns are not created, they are discovered and documented. Whole conferences are dedicated to software patterns (http://www.europlop.net/), where delegates are encouraged to bring their pattern write-ups for appraisal by their peers and the experts.
In 2000 I joined the ACCU, a group for programmers who strive for better software. I was encouraged by another member to write for the group’s magazine, but I didn’t think I’d have anything to contribute that someone better hadn’t already thought of and written about. As I gained experience I found I had quite a lot to write about and to challenge.
In the same way you’d have thought that 23 years after the Gang of Four book most if not all of the software patterns had been discovered and documented. However, it appears not and I was very surprised to find that what I’m calling the “Single CrUD Transaction” pattern, although used by many, doesn’t appear to have been written up anywhere publically. I checked with industry experts and they weren’t aware of it being written-up either.
This is my first software pattern write up and where better to share it for the first time than Norfolk Developers Magazine?
NameSingle CrUD Transaction
IntentTo create, update and delete items in a datastore within a single transaction.
ProblemSometimes it’s necessary to create, update and delete items in a datastore in a single transaction. Traditional web applications support create, update and delete in separate transactions and require the page to be reloaded between each action.
Modern web applications allow the items of a list to be created, updated and deleted in a browser without any interaction with the server or the underlying datastore. Therefore when the list is sent to the server side it must determine which items are new, which already exist and must be updated and which have been removed from the list and must be deleted.
One simple solution is to delete all of the items from the datastore and simply replace them with the list of line items passed from the browser to the server. There are at least two potential drawbacks with this approach:
- If the datastore (such as a relational database) uses unique, numerical ids to identify each item in the list, the size of the ids can become very big, very quickly.
- If the datastore (such as a relational database) has other data which references the ids of the items in the list, the items cannot be deleted without breaking the referential integrity.
SolutionThe Single CrUD Transaction pattern gets around these drawbacks by performing three operations within a single transaction:
- Delete all of the list items from the datastore whose ids are not in the list passed from the browser to the server.
- Update each of the items in the datastore whose ids match ids in the list passed from the browser to the server.
- Create new items in the datastore for each item in the list passed from the browser to the server which do not yet have ids.
ApplicabilityUse the Single CrUD transaction pattern when:
- Datastores cannot have new items added, existing items updated and/or items removed in separate transactions.
- Creating new ids for each item in the list each time the datastore is modified is expensive or cumbersome.
- Removing all the items of a list from a datastore and recreating the list in the datastore breaks referential integrity.
Advantages and Disadvantages
- Entire update happens within a single transaction.
- Three separate calls to the datastore within a single transaction.
Wednesday, 18 October 2017
Event: Burkhard Kloss on The Ethics of Software & Panel: Talking to the clouds
When: 6 November 2017 @ 6.30pm
Where: Whitespace, 2nd Floor, St James Mill, Whitefriars, Norwich, NR3 1TN
The Ethics of Software - some practical considerations
As Uncle Bob pointed out, software is everywhere, and without software, nothing works.
That gives us great power, and – as we all know – with great power comes great responsibility.
We have to make choices every day that affect others, sometimes in subtle and non-intuitive ways. To mention just a few:
- What logs should we capture?
- How does that change if we have to hand them over to the government?
- Are our hiring practices fair? Are we sure about that?
- Is there bias in our algorithms that unfairly disadvantages some groups of people?
- Is the core function of our software ethical? How about if it’s deliberately misused?
I hope to raise a few of these questions, not to provide answers – I don’t have any – but to stimulate debate.
I only came to England to walk the Pennine Way… 25 years later I still haven’t done it. I did, though, get round to starting an AI company (spectacularly unsuccessful), joining another startup long before it was cool, learning C++, and spending a lot of time on trading floors building systems for complex derivatives. Sometimes hands on, sometimes managing people. Somewhere along the way I realised you can do cool stuff quickly in Python, and I’ve never lost my fascination with making machines smarter.
Panel Discussion: Talking to the clouds
Conversational computing, the ability to talk to, an interact with a computer via voice, is becoming more and more prevalent. Most of us now have access to an intelligent assistant like Siri or Alexa, and how we interact with the devices is being defined. But are we going in the right direction. Should we be treating these devices as just "dumb computers", or should we speak to them as we do to other people?
Our panel of experts will discuss this topic with input from the audience as we look at one of the many areas where the question is not "can we?", but "should we?".
Tuesday, 3 October 2017
"It was relaxed and much like having a good dinner with a selection of your wittiest and most worldly wise friends !"
- Chris Sargisson, CEO Norfolk Chamber
Norwich has networking events coming out of its ears. nor(DEV):biz is different, not just because of the tech focus, but also because of the people who attend. Over the years Norfolk Developers has attracted the biggest personalities in the community (that’s you Dom Davis!) including many senior tech business owners. Yes, everyone has their one minute to speak to the group about who they are, what they do and what they’re looking for, but there’s no bell when your time is up and there’s humour, passion and interaction from the entire group. This isn’t just networking, this is building, bonding and rapport with people you may well work with in the future. It’s more than that, this is fun and raucous and entertaining. It’s a night out with friends rather than a pressure cooker for sales.
“Great event .Who would have thought that by having dinner with a bunch of techies I would learn that tomato ketchup is the best thing for smelly dog issues.. it just shows, never judge a book by its cover.”
- Chris Marsh, AT&A BUSINESS INSURANCE BROKERS
At each nor(DEV):biz a member has the opportunity, not the obligation, to do a 15 minute spotlight. This is beyond their one minuter and the opportunity to give a more indepth overview of their business or something they are passionate about.
"Great evening arranged by Paul Grenyer and Dom Davis for the Norfolk Developers group. My highlight was Nikki and Tom Bool integrating the basics of Dog Training skills with leading a team in the workplace!"
- Anthony Pryke, Barclays
For this, the fourth nor(DEV):biz, the spotlight was given by Nikki and Tom Bool. Nikki is a puppy trainer, while Tom runs a language services business, specialising in helping businesses market themselves and grow internationally. Nikki explained how to use positive reinforcement to encourage the right behavior in puppies, with some hilarious anecdotes. Tom went on to describe how similar techniques can be used to help foster the desired behavior in the people you work with. The spotlight fulfilled my favorite criteria by being both informative and entertaining.
"What a smashing group of people and thoroughly enjoyable puppy behaviours reflection on office management. "
- Mike Peters, Evoke Systems
You know you’re onto a winner when you have to encourage people to leave and the conversation has moved from the table to a huddle by the doorway. I’m already looking forward to the next nor(DEV):biz in November where we’re hoping to hear from Laura Flood and Anietie Ukpabio of City College, Norwich, about the young people they’re training to be software engineers.
If you’d like to attend nor(DEV):biz, please drop Paul an email on firstname.lastname@example.org.