Thursday, 28 May 2015

Review: Docker Beginners Hands on Full Day Workshop

Hands-on workshops have become a mainstay of Norfolk Developers over the last 18 months. As is well documented they started with a Neo4j workshop following an evening presentation when it became apparent that forty-five minutes just wasn’t enough for some topics. Covering many aspects of software engineering, from databases to JavaScript, the workshops are an opportunity to learn by doing rather than just listening and are created and given by both visiting speakers and our exceptional local talent.

Today it was the turn of Dom Davis of local Techstars Rainbird to tell us about Docker, an open platform for developers and sysadmins of distributed applications. Docker is a hot topic at the moment and a very popular method of deploying applications.

As with a lot of new technologies I’m keen to learn, but struggle to find the time, so a workshop like this one where I have to put the time aside is extremely valuable to me.

A lot of work clearly went into the preparation of the workshop. Each of the twenty one people who took part had three Amazon Web Services (AWS) instances running CoreOS, a version of Debian with Docker pre-installed. One instance for the docker repository, another for development, which got around the cross-platform issues as the participants had the usual mix of Macs, Linux and Windows machines, and one for production to simulate real deployments. Dom has a lot of AWS experience and was able to easily replicate the instances, but he’d also prepared individual small pieces of paper for everyone with the details of their three instances.

Once a few teething problems with Windows users who were relying on Putty to connect to their instances were quickly overcome, we were off! Dom had prepared nineteen exercises each with detailed steps and highlighted gotchas that could be completed via SSH to, in many cases, all three of the allocated instances. The first exercise was actually part of the Docker website where we could use an embedded shell to create Docker images, deploy and interact with them.

The rest of the exercises took us from creating slightly more complex images with Docker files to creating a repository and pushing Docker images to it from the development instance and retrieving and starting them on the production instance. The final few exercises showed us how to create a Node.js Docker image which served a simple message and simulated blue green deployment with a human router.


Throughout the workshop Dom was informative, funny and patient and easily held the attention of the group. Everyone learnt a huge amount about Docker and we’re hoping that as our experience grows and Docker matures, that Dom will come back to give us an intermediate and advanced workshop in the future.



Thursday, 21 May 2015

NorDev Event: Bluemix, a Platform for Digital Transformation and An Introduction to CoreOS

What: Bluemix, a Platform for Digital Transformation and An Introduction to CoreOS

When: Wednesday, June 3, 2015 @ 6:15 PM to 9:00 PM

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

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


There will be Free burgers, and the usual free drinks!

6.15pm - Free Food and Drink
7.00pm - Introduction
7.10pm - Bluemix, a Platform for digital Transformation
7.55pm - Break
8.10pm - An Introduction to CoreOS
8.55pm - End


Bluemix, a Platform for digital Transformation 
Sukhvinder (@saujla)

In this session, Sukhvinder will describe and show the IBM BlueMix platform, demonstrating how it fits into an innovative organisation and how its DevOps approach leads to quicker time to deployment. Bluemix is IBM’s Digital Innovation Platform to enable developers to rapidly build, deploy, and manage their cloud applications, while tapping a growing ecosystem of available services and runtime frameworks.

Attendees can download a free 30 day trial of Bluemix from this link -
http://bit.ly/BluemixTrial

Sukhvinder has worked in the software industry for over 25 years in roles including software development, design and architecture. He is now helping organisations take a business outcome focused view of Cloud, including using it as a platform for digital transformation. He is a firm believer in the transformative approach of the API economy and Mobile devices.



An Introduction to CoreOS
Dom Davis (@idomdavis)

Docker, containers and immutable infrastructure seem to be the buzzwords of the day, but while it’s easy to get immutable infrastructure in Docker it’s not always so easy with the infrastructure that runs the infrastructure. Enter CoreOS, a simple, relatively lightweight Linux implementation designed out of the box to run containers as distributed infrastructure. In this talk we’ll be having a brief look at what CoreOS is, why it’s needed, and some of the things you can do with it.

Dom Davis is a veteran of The City and a casualty of The Financial Crisis. Not content with bringing the world to its knees he then went off to help break the internet before winding up in Norfolk where he is now a technology evangelist for a small startup. Dom is an enthusiastic and impassioned speaker [read: he gabbles] who uses a blend of irreverent sarcasm and flippant humour to bring complex technical subjects to a broad audience. Whether or not they understand him is up for debate, but he likes to believe they do.

Saturday, 16 May 2015

The Power of Prototyping: The Client View

"After visiting Naked Element with my document management idea. Within a few days they were able to take that idea, and transform it into a working prototype. It was quite remarkable! Thank you Naked Element" 


- Jonathan Knight of Norfolk IT Support

When you come to see Naked Element for the first time at the start of a new project, you’ll tell us about your requirements and we’ll explain how we can implement them for you. However, we’re a new supplier. You’re new to Naked Element and we’re new to you. We haven’t worked together on a project before, so there hasn’t been the chance for trust to build up between us. And although we know we can deliver, because we have experience from many projects we’ve completed in the past, we know you would feel more comfortable if we had something to show you.

Ideally we would like to be able to show you the work we’ve done before and in a lot of cases we can. However, there are at least two reasons why we may not be able to. A lot of the work we do is internal to clients and therefore cannot be shown to a third party, even under NDA. Another reason might be that we may not have built some aspects of your requirements before so there is nothing to show.

What we can do in a lot of cases is build a basic end-to-end prototype which demonstrates a few key features and/or how a number of key technologies might work together.

For example a client recently came to speak to us and said he was looking for a system which would allow scanned documents to be stored in the cloud, classified and searched. We worked on a system in the past that included similar features, but we were unable demonstrate it as it was an internal system belonging to someone else.

To demonstrate that we could fulfil the clients requirements, we spent a few hours building a simple prototype web application which stored scanned documents in a well known cloud storage service, indexed them in an enterprise level search system and could search and retrieve them. As this was a prototype, the functionality was basic and as we knew we’d be throwing it away, we worked without our customary automated tests, continuous integration, static analysis or security.

Once we had something reasonably presentable we invited the client in to see the results. He was immediately pleased and excited about our prototype and we had demonstrated that we could deliver his requirements. Of course we explained clearly, as we would to you, that this wasn’t production ready software and further development would require investment.

Naked Element does not give away services for free, but there are occasions where a quick, basic, non-production prototype can add value to the requirements gathering process.

Prototypes are a powerful way for us to demonstrate to you what we can do, when we don’t have an appropriate example to show you. When you come to see us, ask us if a prototype is appropriate for your project with Naked Element.

This is a piece I originally wrote for the Naked Element blog. The original can be read here. You can also read the consultancy view here.

Wednesday, 13 May 2015

NorDev: Docker Beginners Hands on Full Day Workshop

When: Wednesday, 27th May 27 2015 @ 9:45 AM to 4:30 PM

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

Price: £30.00

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

Level: Beginners
Prerequisites: Laptop with SSH client
Location: Conference Room 1 (1st floor)

In this hands on workshop we’ll be looking at the basics of using Docker to deploy services in immutable servers.

Starting from the absolute basics of installing and running docker we’ll then look at running pre-packaged images before moving onto creating our own. We’ll then use these images to see how Docker can be used to simplify testing and deployment of code.

During the session we’ll be working with the linux command line, so a familiarity with that will be beneficial. The practical sessions will be run from the cloud, so a laptop with an SSH client will be needed.

Dom Davis 
(@idomdavis)

Dom Davis is a veteran of The City and a casualty of The Financial Crisis. Not content with bringing the world to its knees he then went off to help break the internet before winding up in Norfolk where he is now a technology evangelist for a small startup.

Dom is an enthusiastic and impassioned speaker [read: he gabbles] who uses a blend of irreverent sarcasm and flippant humour to bring complex technical subjects to a broad audience. Whether or not they understand him is up for debate, but he likes to believe they do.

Monday, 4 May 2015

NorDev: Ruby on Rails from scratch full day workshop

What: Ruby on Rails from scratch full day workshop

When: Wednesday, May 13, 2015 @ 9:30 AM to 5:00 PM

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

How much: GBP30.00/per person (includes lunch)

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

Ruby on Rails Full-day Beginner’s Workshop

The aim: 

To take developers from a position of very little or no ruby experience, to the point where you are comfortable building  and hosting a simple Ruby on Rails web application.

Prerequisites:

Some programming experience in any language (e.g. Javascript). Understand what a database is, maybe a little SQL, and be reasonably comfortable with HTML and CSS.

Basic familiarity with the command line (changing directory, running scripts).

You will need to bring a laptop with a recent version of ruby and rails installed (Ruby 2+ and Rails 4.1+)

The syllabus:

We will walk you through the basics of building a simple application using Ruby on Rails, and in 8 hours will aim to cover at least the following:

  • Basics of Ruby & Setting up a rails application 
  • Overview of the Rails architecture 
  • Building and querying your models 
  • Controllers and Routing 
  • Views and forms 
  • Helpers and rubygems

Note that we probably won't be able to cover more advanced topics such as building mailers, file uploads or model validations. However, this workshop will provide an excellent base for exploring these topics yourself.

About the workshop:

This workshop will be run by four professional rubyists. On a good day, we spend our time writing and debugging rails applications, and spend some of our evenings giving presentations on how to write and debug ruby code.

We recognise that programming is not something you learn by hearing about, it's something you learn by doing. Each section will consist of roughly 20mins talk and 20mins practical, though this will vary depending on the content. All the presenters will be on hand to give assistance during the practicals.

There will be reference materials given out during the day, and ongoing online access to help and advice.

Saturday, 2 May 2015

The Power of Prototyping: Consultancy View


Imagine this scenario: You’re sitting in an initial meeting with a new client and they’ve just explained their requirements to you. Naturally, you’ve explained that you can build everything they’ve asked for and they look pleased. However, they are a new client. They’re new to you and you’re new to them. You haven’t worked together on a project before, so there hasn’t been chance for trust to build up between the two of you. And although you’re confident you can deliver, because you have experience from different aspects of a number of projects you’ve completed in the past, you can’t help wondering if that confidence has fully transferred to the client.

So why not just show them what you’ve done before? There may be at least two reasons. A lot of the work you may have done in the past might be internal to previous clients and therefore cannot be shown to a third party, even under NDA. Another reason might be that you haven’t built some of the specific aspects the new client is asking for before so there is nothing to show.

One solution is to build a basic end-to-end prototype which demonstrates a few key features and/or how a number of key technologies might work together.

For example a client recently came to speak to me and said he was looking for a system which would allow scanned documents to be stored in the cloud, classified and searched for. I have worked on a system in the past that included similar features, but I was unable demonstrate it as it was an internal system belonging to someone else.

To demonstrate that we could fulfil the clients requirements, I spent a few hours building a simple prototype web application which stored scanned documents in a well known cloud storage service, indexed them in an enterprise level search system and could then search for and retrieve them. This was both enjoyable and liberating! I had the opportunity to work with and learn about some technologies in a way I hadn’t before, some of them new to me. As this was a prototype, the functionality was basic and as I knew I’d be throwing it away, I worked without automated tests, continuous integration, static analysis or security.

Once I had something reasonably presentable (using a basic Bootstrap theme) I invited the client in to see the results. He was immediately pleased and excited about the prototype and I felt I had demonstrated that I could deliver his requirements and was reassured that he now had confidence in me. Of course I explained clearly that this wasn’t production ready code by any stretch of the imagination and further development would require investment.

While this demonstrates how powerful a prototype can be, what are the costs? Often no money is paid for prototypes. This means it is very important to do a cost benefit analysis. In the example described above the few hours it took to put the prototype were slotted into free time and the real cost to me was very small, while the benefit was relatively large. This may not be the case for every company or freelancer.

It is important not to give services away for free. You could take this argument to an extreme and say that even discussing requirements with a client is of material benefit to them and should be charged for. This is not what I believe, but is the reason why the prototype is kept basic and nowhere near production ready.

Prototypes are a powerful way of demonstrating what you can do and increasing your knowledge of unfamiliar technologies and how they fit together.