Learning by doing

This evening I went along to the Edinburgh instalment of the Docker Global Mentor Week. I wasn’t really sure what to expect but there was a good range of tutorials for both the beginner and the intermediate level.

I spent a couple of hours exploring some new (to me) functionality for deploying and scaling Docker images in production environments. I’ll hopefully get a chance to put some of this knowledge into practice sooner rather than later.

Size matters

During my experiments will building my own Docker images I have become somewhat preoccupied with getting my images as small as possible. Naturally I’m using Alpine as a starting base image but I recently started wondering what could be shed from even this, almost heading toward a Unikernel approach. Not only would these be tiny — and therefore incredibly fast — but also far more secure due to a much reduced attack surface.

After I started doing some research, I happened across a blog post that outlines the process of stripping back a container to its smallest possible image.

My own tinkering continues.

Learning from communities

Edinburgh has a raft of user groups — technology-related and otherwise. I usually attend the monthly PHP group, have dipped into EdinburghJS several times and this coming Thursday I’ll be going along to the Docker meetup.

The PHP talk this evening concerned the PHP FIG which I’d kind of put out of my mind after the meltdown back in May. It seems rumours of their demise had been greatly exaggerated.

Back at the Scotland PHP Conference, Jessica Rose presented on the topic of tech communities. One pearl was the Ruby community mantra:

“Matz is nice so we are nice”

From what I’ve seen of the latest raft of popular languages, Rust and Elixir have great supportive communities. There is no combativeness but frequent support, encouragement, understanding and learning. When challenged, their response is one of explanation. For example, “Here are the reasons behind this design decision, please tell us what we could do better.” and, if that fails to resolve any conflict, “If this isn’t clear then we have a problem with our documentation”.

PHP is often the target of derision — at times with good reason — but to see this kind of maturity among developers is very refreshing.

Starting early

I’ve purchased the first of the Christmas presents — quite possibly the earliest that I’ve ever undertaken the annual gift-buying frenzy.

Maybe it’s because I’ve had half-an eye on Christmas for a few months now.

My walk to and from work takes me past Edinburgh’s Royal Botanical Gardens — one of my favourite places in the city. Since the conifers started casting their pine cones I’ve been keeping watch for nice specimens that have fallen over the fence onto the roadside and gathered them up. There is some gold spray paint and red ribbon set aside to make some festive decorations with them.

The only downside of starting my shopping so early is that I now have to wait several weeks before I can get my hands on my daughter’s toys.

One thing that I definitely don’t have sorted for December yet is a final personal challenge.

Learning by Playing

As a child I went through a phase of enjoying taking things to pieces. I’d like to think that I was exploring and trying to understand and see how things worked rather than just being methodically destructive.

I’m currently experimenting with building several of my own Alpine-based Docker images and compiling various technologies from source, namely PHP7 FPM, nginx, Node.js, Beanstalkd, Postgres, Redis and the ELK stack — at least for starters.

This is giving me the opportunity to tweak and customise with impunity as I can just throw things away and start again when I break things. Unlike my mum’s alarm clock.

I’ll be sure to share them on GitHub / GitLab and Docker Hub when I’m happy with them.