Skip to content

Instantly share code, notes, and snippets.

@chrislo
chrislo / 2018-11-07-map-with-highlightable-regions-resources.md
Last active November 7, 2018 16:20
Resources for building a map with highlightable regions

At DataKind on 7th November 2018 I am speaking to a charity who would like to build a map tool that works in a similar way to the one on http://www.domesticabusemigration.co.uk/.

That site includes the code for the map. The code helpfully links to the following resources which helped the developer to make it:

@chrislo
chrislo / govuk-development-vm.md
Created February 28, 2018 15:46 — forked from floehopper/govuk-development-vm.md
Setup GOV.UK development VM with local SSO, Whitehall & its draft stack

Data replication

The idea here is to load the routes for the router and draft-router. Life's too short to work out how to create the routes manually!

  • cd /var/govuk/govuk-puppet/development-vm/replication
  • Apply replicate-data-local.diff patch to skip all dbs on mongo-1.backend & api-mongo-1.api
  • Run the following command to import data for router & draft-router: ./replicate-data-local.sh -s -d backups/YYYY-MM-DD -p -q -e -t -i 'collections_publisher contacts release search_admin tariff_admin tariff_temporal'

Authenticating proxy

@chrislo
chrislo / fuzzy_match_courses.rb
Last active August 29, 2015 14:05
FuzzyMatch Courses
require 'fuzzy_match'
require 'date'
require 'ostruct'
haystack = [
OpenStruct.new(
title: "Good brain, bad brain: Parkinson's disease",
start: Date.parse('24 February 2014'),
slug: 'good-brain-bad-brain-parks'),
OpenStruct.new(
@chrislo
chrislo / fuzzy_match_strings.rb
Last active August 29, 2015 14:05
FuzzyMatch a list of strings
require 'fuzzy_match'
haystack = [
"Good brain, bad brain: Parkinson's disease",
"Archaeology of Portus: exploring the lost harbour of ancient Rome",
"The secret power of brands",
"The secret power of brands"
]
matcher = FuzzyMatch.new(haystack)
@chrislo
chrislo / get_survey_list.rb
Last active August 29, 2015 14:05
Fetch a list of surveys from SurveyMonkey
response = RestClient.post(
"https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=#{KEY}",
{ fields: ["title", "date_created"] }.to_json,
'Content-Type' => 'application/json', 'Authorization' => "bearer #{TOKEN}")
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \[\033[1;33m\]\w\[\033[0m\]$(parse_git_branch)\n$ '
# list remote branches with committer name and email
@chrislo
chrislo / keybase.md
Created March 17, 2014 17:30
keybase.md

Keybase proof

I hereby claim:

  • I am chrislo on github.
  • I am chrislowis (https://keybase.io/chrislowis) on keybase.
  • I have a public key whose fingerprint is 4E0B 406F 3E2F 5ACC E0CA F0C2 B9B8 2371 498D 0E0A

To claim this, I am signing this object:

require 'minitest/unit'
require 'minitest/autorun'
class Atom
attr_reader :symbol
def initialize(symbol)
@symbol = symbol
end
@chrislo
chrislo / libby_bot
Created September 5, 2013 15:31
RTanque bot
class LibbyBot < RTanque::Bot::Brain
NAME = 'libby_bot'
include RTanque::Bot::BrainHelper
TURRET_FIRE_RANGE = RTanque::Heading::ONE_DEGREE * 1.0
def tick!
self.move_randomly
if (target = self.nearest_target)
@chrislo
chrislo / gist:5717561
Last active June 17, 2016 09:43
Code for the Web Audi "monosynth" from my blog post (http://blog.chrislowis.co.uk/2013/06/05/playing-notes-web-audio-api.html)
$(function () {
var keyboard = qwertyHancock({id: 'keyboard'});
var context = new AudioContext();
/* VCO */
var vco = context.createOscillator();
vco.type = vco.SINE;
vco.frequency.value = this.frequency;
vco.start(0);