What is this ‘book’?

This book was originally a great big bundle of my rough notes and research into various tools and platforms, tied together in a nice wrapper using LaTeX as a typesetting tool. I started writing this up late in 2014, and realised that formatting as a printed book is straightforward with the tools at hand will help me focus and write things that might make sense later, and maybe useful to others.

I then abandoned this in favour of just publishing the snippets online as a website. I felt it would be wasteful to start from scratch so I imported all the content from the book (in any state of editing) and rolled from there. There’s a lot of guff.

This book is also a general indicator as to the development tools and languages I think are interesting to me; all of this is real and used by me right now. Nothing is research just for the sake of this book. It’s all stuff I’ve been working on and using, and not a wish-list of things to do. The other general indicator of my interests is the huge pile of unread books sat next to me, some of which may get mentioned.

The Creative Commons License

This site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. This means you are free to:

  • Share; copy and redistribute the material in any medium or format

  • Adapt; remix, transform, and build upon the material

  • for any purpose, even commercially.

  • The licensor cannot revoke these freedoms as long as you follow the license terms.

You MUST attribute this website as the source of the material. I’m happy with a link to the website, with the text ‘(c) randonomicon.com’ or ‘(c) Antony Hutchison’.

You can find more information on your rights under this license here: http://creativecommons.org/licenses/by-sa/4.0/. If you don’t agree to the terms of the license, or have an intended use that this license doesn’t permit, talk to me. I’ve chosen this license as it’s a ‘free-culture’ license, as I believe that by sharing this knowledge others may be helped.

Who is this book for?

You are the best judge of your ability, if you want to dive in then I honestly hope this book helps you.

This book sometimes covers basics but only when it helps ground my thoughts as I write or if I think it makes sense. There are a bazillion books that introduce technologies, and instead of reproducing them I might just add enough to get things rolling. Or I might just link to them so you can go buy them. If it’s a new technology or paradigm I’ll explore simpler things, but probably not if it’s something like Java. Either way, there are better uses of our time than yet another Hello World tutorial so that’s definitely something that’s not likely to appear here. When we are skimming over topics, code fragments will be used instead of full listings. I’ll assume that you know what to do with them.

About the book itself

This book was originally created in LaTeX. The primary edit tool for this book was https://www.sharelatex.com, an online collaborative editing tool. It was typeset as a book, single-sided for easier screen reading.

Since then, it’s evolved / butchered into a Jekyll and Markdown based website.

This book has an evil twin known as ‘RoughNotes’ that will never, ever, ever see the light of day. When a chapter in there grows enough and is cleaned up, it is moved into this book.

The other sources of information in this book are my Instapaper collection, my DEVONThink clippings, and my browser bookmarks. It’s a goldmine waiting to be turning into something legible. There’s also a lot of notes in a product called ‘Circus Ponies Notebook’ that is sadly Mac-only, and I need to liberate them into this book.

The glossary is in part inspired by Ambrose Bierce’s Devils Dictionary, published in 1906. This book of ‘DevNotes’ lacks both the depth of cynicism and the wit of the Devils Dictionary, but is considerably more advantageous to those seeking to program computers. To find out more, see


This book may contain Amazon affiliate links that support the development of new chapters. Click a link, buy a book, it’s like voting for new words.

Quick disclaimer: Whatever you do with your computer is your own fault. If you type ‘vagrant destroy’ and it rubs out your only copy of your working mission critical code project just before you commit it to SCM then that’s your doing and your really need to think hard about your general working practises. If you are trying something out and it doesn’t work and you miss your deadline, this is also purely down to you.

How complete is this book?

This ‘book’ is now a website. It’ll probably never be truly finished, for many reasons:

  • technology changes quickly - there will always be something to add, amend, or improve

  • there is no real peer review of this material aside from the feedback from readers, so there’s always going to be corrections needed. Feedback is welcome from the readers and helps refine the text

  • as a general rule I’m just adding when and where I feel like, based on things I’m actively using. This greatly depends on what I’m working on and how much time I have.

  • there’s a lot of material that is not yet ready to include because it’s either wrong or inaccurate, outdated, contains mistakes, or has not yet been formatted.

  • some areas dive deeper into the technology than others and it takes time to level this off so the book as a whole makes sense and is useful. The focus is on adding needed depth rather than taking away but without duplicating other resources


The chapter on Docker is mostly complete although rapidly becoming outdated as Docker is constantly changing. Docker 1.5 was covered, it’s now up to 1.8.2 (as of last update). Mostly, it still appears to be useful information.

Magnolia CMS

Finally, the chapter on Magnolia CMS is fine in what it covers, but there is a lot missing. I don’t intend to expand this beyond the programming tasks of Freemarker and Spring Blossom. Parts of this chapter feel unconvincing to me, as I finished writing some of it long after I finished the project.