Skip to content

Instantly share code, notes, and snippets.

Jonny Arnold jonnyarnold

  • Trussle
  • London, UK
Block or report user

Report or block jonnyarnold

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile

Keybase proof

I hereby claim:

  • I am jonnyarnold on github.
  • I am jonnyarnold ( on keybase.
  • I have a public key ASDgXrn_-SsrWMm38PlJkl64qLLlmYfuDY55pyAT5A7KxQo

To claim this, I am signing this object:

jonnyarnold /
Created Apr 19, 2016
Install Mongo on AWS
# These are the instructions for setting up a Mongo database on AWS,
# taken from:
# and modified for the newer instances (x4.large).
sudo mkdir /etc/yum/repos.d
jonnyarnold / valign-middle.scss
Created Apr 6, 2016
Vertical alignment in Foundation
View valign-middle.scss
// Courtesy of:
// IE fix by me!
.valign-middle {
display: table;
// IE fix; otherwise, the images will go to 100% of page width,
// rather than column width.
table-layout: fixed;
jonnyarnold /
Last active Mar 15, 2016
Optimal Foraging Theory: The Game

Decision-Making: An Experiment

Participant Instructions

Let's play a game.

The aim is to have the most points at the end of the game.

On every turn of the game, you can either:

  • Lose 1 point and take a card. A card is worth points.
View CSS-Transitions.html
<style type='text/css'>
body {
text-align: center;
h1 {

In Lisp, we use brackets to determine where an expression starts and ends. This looks weird and adds a lot of cluttering brackets. Can we get rid of them?

Suggestion: Each form has an arity (which can be *); the parser uses left-to-right parsing to determine where an expression starts and finishes.

Let's assume + is a 2-form, and numerics are values (1-form):

+ 2 2     # => (+ 2 2)

Cool Stuff from ThoughtWorks' Tech Radar


  • #5: Products over Projects is an important terminology change that reflects what we're doing in the development team more and more.
  • We should be aware of avoiding #26 Microservice Envy and #30 Seperate DevOps Team for the future.




  • It's fun.
  • It's useful.
    • Knowledge of how languages work is useful when you hit a really weird bug.
    • It gives you an appreciation of how languages are designed for the use case. It reduces WTFs.
  • I can say I've built a programming language; looks great on the CV!
  • It lets me experiment - are there features that could be better? Is there a combination we haven't tried?
  • It's hard. I like hard challenges.

How did you learn?

View refactored?.rb
class Reporter
def send_report
message ="", "", "Your report").send(message)
class User
def self.expired_logins
jonnyarnold /
Last active Jun 15, 2017
SOLID Workshops

Workshop 1

What is SOLID?

Requirements always change. We need to write code that is able to change in the future. The process of doing so is usually called design. Design principles are often-cited rules that lead to easily-changed code. Design principles have been derived from the initial goal: to have easily-changed code. They are not arbitrary rules. SOLID principles are an often-used set of design principles.

You can’t perform that action at this time.