Skip to content

Instantly share code, notes, and snippets.

View jsimpson's full-sized avatar

Jonathan Simpson jsimpson

View GitHub Profile
@jsimpson
jsimpson / problem.cpp
Created April 1, 2017 14:41 — forked from depp/problem.cpp
A Faster Solution
// Faster solution for:
// http://www.boyter.org/2017/03/golang-solution-faster-equivalent-java-solution/
// With threading.
// g++ -std=c++11 -Wall -Wextra -O3 -pthread
// On my computer (i5-6600K 3.50 GHz 4 cores), takes about ~160 ms after the CPU
// has warmed up, or ~80 ms if the CPU is cold (due to Turbo Boost).
// How it works: Start by generating a list of losing states -- states where the
// game can end in one turn. Generate a new list of states by running the game
# application.rb:

config.exceptions_app = lambda do |env|
  exception   = env['action_dispatch.exception']
  params      = env['action_dispatch.request.parameters']
  request     = Rack::Request.new(env)
  status_code = ActionDispatch::ExceptionWrapper.new(env, exception).status_code
  
 Rails.logger.info [
@jsimpson
jsimpson / event_sourcing_intro.rb
Created May 14, 2018 02:33 — forked from mottalrd/event_sourcing_intro.rb
An introduction to event sourcing, London Ruby User Group, 9th May 2018
module Commands
module Meeting
AcceptSchema = Dry::Validation.Schema do
required(:user_id).filled
required(:status).value(eql?: :scheduled)
end
class Accept < Command
def call
return validate if validate.failure?
@jsimpson
jsimpson / Gemfile
Created June 14, 2018 05:43 — forked from timothypage/Gemfile
Quick hack to passthrough sinatra to webpack-dev-server for awesome client hot reloading plus live api endpoints
source "https://rubygems.org"
gem "rack-proxy"
gem "sidekiq"
gem "sinatra"
gem "sinatra-contrib"
gem "py"
@jsimpson
jsimpson / triangle-workflow.md
Created February 22, 2019 17:53 — forked from anjohnson/triangle-workflow.md
Triangle workflows

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

# 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
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-headers-4.13.10-041310_4.13.10-041310.201710270531_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-headers-4.13.10-041310-generic_4.13.10-041310.201710270531_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-image-4.13.10-041310-generic_4.13.10-041310.201710270531_amd64.deb
sudo dpkg -i *.deb
@jsimpson
jsimpson / agile-vs-fragile-summary.md
Created April 18, 2019 04:51 — forked from teohm/agile-vs-fragile-summary.md
Agile vs Fragile - Summary

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. http://hideme.be)

1) Deliver value to customer

  • Agile: focus on deliver valuable software to customer
  • Fragile: focus on meeting delivery period

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.
@jsimpson
jsimpson / stimulus.md
Created September 16, 2019 19:36 — forked from mrmartineau/stimulus.md
Stimulus cheatsheet
@jsimpson
jsimpson / octal_x86.txt
Created January 12, 2020 06:39 — forked from seanjensengrey/octal_x86.txt
x86 is an octal machine
# source:http://reocities.com/SiliconValley/heights/7052/opcode.txt
From: mark@omnifest.uwm.edu (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