Skip to content

Instantly share code, notes, and snippets.

Working from home

Jonathan Simpson jsimpson

Working from home
Block or report user

Report or block jsimpson

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
jsimpson / octal_x86.txt
Created Jan 12, 2020 — forked from seanjensengrey/octal_x86.txt
x86 is an octal machine
View octal_x86.txt
# source:
From: (Mark Hopkins)
Newsgroups: alt.lang.asm
Subject: A Summary of the 80486 Opcodes and Instructions
(1) The 80x86 is an Octal Machine
This is a follow-up and revision of an article posted in alt.lang.asm on
7-5-92 concerning the 80x86 instruction encoding.
The only proper way to understand 80x86 coding is to realize that ALL 80x86
jsimpson /
Created Dec 4, 2019 — forked from sgup/
Recommended Routine (Updated Dec 2019)
jsimpson /
Created Sep 16, 2019 — forked from mrmartineau/
Stimulus cheatsheet

Principles of Adult Behavior

  1. Be patient. No matter what.
  2. Don’t badmouth: Assign responsibility, not blame. Say nothing of another you wouldn’t say to him.
  3. Never assume the motives of others are, to them, less noble than yours are to you.
  4. Expand your sense of the possible.
  5. Don’t trouble yourself with matters you truly cannot change.
  6. Expect no more of anyone than you can deliver yourself.
  7. Tolerate ambiguity.
  8. Laugh at yourself frequently.

Agile vs Fragile - Summary

My personal notes on Brian Copeland's blog series: Agile vs Fragile

(If you are unable to access the blog post, try using a US proxy or web-based proxy service e.g.

1) Deliver value to customer

  • Agile: focus on deliver valuable software to customer
  • Fragile: focus on meeting delivery period
View gist:8f01bacf3ab0c5d37bc77e7f52359ca8
# perform a fresh install of Ubuntu 17.10
# upgrade the kernel to v4.13.10
mkdir ~/kernel-v4.13.10
cd ~/kernel-v4.13.10
sudo dpkg -i *.deb

Triangle Workflows

A triangle workflow involves an upstream project and a personal fork containing a development branch of the project. This configuration makes git pull merge changes from the upstream but git push send local commits to the personal fork. However those config settings only work on relatively recent versions of git; 1.7.9 doesn't support the required remote.pushdefault config setting so you will have to explicitly tell git push which remote to push to.

This gist does not attempt to explain exactly what these commands do, it's intended as a cheat-sheet/reminder.

To set up a project area

jsimpson / Gemfile
Created Jun 14, 2018 — forked from timothypage/Gemfile
Quick hack to passthrough sinatra to webpack-dev-server for awesome client hot reloading plus live api endpoints
View Gemfile
source ""
gem "rack-proxy"
gem "sidekiq"
gem "sinatra"
gem "sinatra-contrib"
gem "py"
jsimpson / event_sourcing_intro.rb
Created May 14, 2018 — forked from mottalrd/event_sourcing_intro.rb
An introduction to event sourcing, London Ruby User Group, 9th May 2018
View event_sourcing_intro.rb
module Commands
module Meeting
AcceptSchema = Dry::Validation.Schema do
required(:status).value(eql?: :scheduled)
class Accept < Command
def call
return validate if validate.failure?
# application.rb:

config.exceptions_app = lambda do |env|
  exception   = env['action_dispatch.exception']
  params      = env['action_dispatch.request.parameters']
  request     =
  status_code =, exception).status_code [
You can’t perform that action at this time.